No.4ベストアンサー
- 回答日時:
ファイルポインタ2つ使えば全部読まなくてよくなるかも
(前から3つだけ有効にした場合)
<?php
$filex = "userdata";
$nfile = "new_userdata";
$fp1 = fopen( $filex, "r" );
$fp2 = fopen( $nfile, "w+" );
flock ( $fp2, LOCK_EX );
$flg=true;
while (($data = fgetcsv($fp1, 1024, ",")) !== FALSE) {
fputs($fp2,($flg?"":"\n").implode(array_slice($data,0,3),","));
$flg=false;
}
flock ( $fp2, LOCK_UN );
fclose ( $fp1 );
fclose ( $fp2 );
?>
回答ありがとうございました、
新しいファイルが考えていた通りできました、
while (($data = fgetcsv($fp1, 1024, ",")) !== FALSE) {
fputs($fp2,($flg?"":"\n").implode(array_slice($data,0,3),","));
$flg=false;
}
この部分は今のところ私の頭では分かりませんが
これからコードを解読して自分のものにしたいと思います
No.3
- 回答日時:
>ファイルを書き換えたいのですが
それはfopenを読込属性の'r'で開いてもむり・・・
'r+'で開いて、読んで、シークして、fwriteで書き込む。
また4番目の項目を削除する作業をあやまって2回以上おこなうと
5番目、6番目・・・とどんどん削除されちゃうので、
仕様をもうすこし詰めてからトライすることをおすすめします。
この回答への補足
何度も回答ありがとうございます、
ファイル全体を読み込んで配列に入れ
一行づつ読み込んで新しい配列を作り
新しいファイルを追記モードで開き
一行づつ書き込むことにしました、
下記のコードでおかしなところがあれば指摘お願いします。
<?php
$filex = "userdata";
$nfile = "new_userdata";
$file = fopen ( $filex, "r" );
while ( $arry = fgetcsv( $file, 1000, "," )){ $dcsv[] = $arry; }
fclose ( $file );
foreach ( $dcsv as $line ) {
list ($fmain_no,$fname,$fpasswd,$fmail) = $line;
$array = compact ( "fmain_no", "fname", "fpasswd" );
$string = implode ( ",", $array);
$file = fopen( $nfile, "a" ) or die ( "$nfile エラー" );
flock ( $file, LOCK_EX );
fputs ( $file, $string."\n" );
flock ( $file, LOCK_UN );
fclose ( $file );
}
?>
No.2
- 回答日時:
listで受けるフローであれば、削除しなくても変数を指定しなければ
すむのでは・・・と思いつつ
foreachで回して要素をunsetするのでどうですか?
<?
$filex = "userdata";
$file = fopen ( $filex, "r" );
while ( $arry = fgetcsv( $file, 1000, "," )){
$dcsv[] = $arry;
}
fclose ( $file );
foreach ( $dcsv as $key=>$line ) {
unset($dcsv[$key][3]);
}
print_r($dcsv);
?>
この回答への補足
<?php
$filex = "userdata";
$file = fopen ( $filex, "r" );
while ( $arry = fgetcsv( $file, 1000, "," )){
$dcsv[] = $arry;
}
fclose ( $file );
foreach ( $dcsv as $key=>$line ) {
unset($dcsv[$key][3]);
}
print_r($dcsv);
//####################################################
?>
どこが間違っているのか上記のコードでは出来ません
ファイルを書き換えたいのですが
No.1
- 回答日時:
>二次元配列になったファイル名
まったく意味がわかりません。
二次元でも配列でもファイル名でもないように見えますが、
もうすこし具体的に状況を説明してもらわないとなんとも・・・
この回答への補足
ファイル名"userdata"
$filex = "./cgi-bin/data/userdata";
###########################################
$file = fopen ( $filex, "r" ) or die ( "エラー $filex" );
while ( $arry = fgetcsv( $file, 1000, "," )) { $dcsv[] = $arry; }
fclose ( $file );
foreach ( $dcsv as $line ) {
list($no,$fname,$fta,$fhi) = $line;}
$fhi を削除したい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) PythonでLoopを使って配列内の文字列を結合する。そして [] を削除する 1 2022/03/31 23:28
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数行のデータのPOST処理に関して
-
自動で番号を振りたい
-
CSVデータの行数カウントをした...
-
別ファイルの構造体の値を読み...
-
【PHP】csvファイルへの書き出...
-
多次元配列の一次元目の最大値...
-
ログファイルが一定行数を超え...
-
自動生成するCSVの改行が上手く...
-
CSVファイルの最終行のデー...
-
テキストデータから指定行の削除
-
バイナリファイルの内容を、そ...
-
PHPファイルでテキストファイル...
-
rubyで複数列のデータを一行に...
-
C言語でCSVファイルの行数を読...
-
バイナリで書き込みましたがエ...
-
ヒアドキュメントの中のfor文
-
PHPのアクセスカウンターのバグ...
-
$_SESSIONに二次元配列を使える...
-
C言語の配列をPush(追加)する...
-
CArrayのソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Resource id #3 と表示されま...
-
別ファイルの構造体の値を読み...
-
stdClass Objectを連想配列のよ...
-
CSVデータの行数カウントをした...
-
ヒアドキュメントの中のfor文
-
複数行のデータのPOST処理に関して
-
While文を使って配列の中身を全...
-
C言語でCSVファイルの行数を読...
-
行数が30万件ほどあるCSVから、...
-
csvの内容を行単位で削除したい
-
CSVファイルの最終行のデー...
-
バイナリファイルの内容を、そ...
-
PHPで、CSVファイルを、指定し...
-
doxygenを使用する環境について
-
csvファイルを読み込み→上書き...
-
FortranのOPEN文
-
PHPでCSVの一部の行を編集したい
-
ラジオボタンのチェックの付け方。
-
Ethnaでのsection使用法
-
CSVデータを正規表現で抜き出せ...
おすすめ情報