
PHPを学習中です。CSVを多次元化して最後はセッションに格納し、自由に他のページでもそのセッションを読み込めるようにしたいです。
CSVの中身はコード名、商品名、値段、在庫数になっています。
while(!eof($f_pt)){
$data=fgets($f_pt);
$data=rtrim($data);
$str=explode(",",$data);
$str[0]=array($str[1],$str[2],$str[3]);
}
こんな風にひとまずコードに格納してwhileで回せばいいのかな??っと苦戦しています。
そしてセッションにしたあとforeachでどうやって配列で表示すればいいかわかりません。。。
アドバイス等頂けたら幸いです。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>学校の授業で習っていない関数はなるだけ使わず学習したいです。
なるほどねぇ
とはいえfeof()を習ってて、fgetcsv()を習ってないというのは
いかにも中途半端な気がしますが・・・
ご提示のソースを見るにいろいろ問題があります。
>while(!eof($f_pt)){
eof→feofですね
>$data=rtrim($data);
行末の改行マークを削除しているつもりでしょうけど
スペースやタブなどもなくなっちゃいますね
>$str=explode(",",$data);
csvだけにデリミタ(区切り文字)を「,」としているのはわかります
エンクロージャ(囲み文字)は指定していないのでしょうか?
それとexplode()の結果を$strという変数で受けるのもあまり
美しくないですね。戻り値は配列ですから
>$str[0]=array($str[1],$str[2],$str[3]);
これはデータ構造を理解していないと思います。
元のソースを活かすとして総じてこんな感じでしょうか?
<?PHP
$fname="test.csv";
$datas=array();
$f_pt=fopen($fname,"r");
while (($temp_line = fgets($f_pt, 4096)) !== false) {
$temp_line=str_replace(array("\r","\n"),"",$temp_line);
$temp_array=explode(",",$temp_line);
$datas[]=$temp_array;
}
var_dump($datas);
?>
No.1
- 回答日時:
str_getcsv()でチャレンジしてみてください
http://www.php.net/manual/ja/function.str-getcsv …
ちなみにfgetcsv()でもいけますが、多少煩雑になります
http://www.php.net/manual/ja/function.fgetcsv.php
お返事ありがとうございます^^
申し訳ございません。なるだけ学校の授業で習っていない関数はなるだけ使わず学習したいです。
そちらを使わずにする方法も出来れば教えて頂けませんでしょうか?よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
csvファイルについて教えて下さ...
-
PHP8でWarning:Undefined varia...
-
PHPSpreadsheetによる書き出し...
-
PHPの変わった閉じタグの必要性...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP 別ドメインへのファイル保存法
-
Resource id #3 と表示されま...
-
別ファイルの構造体の値を読み...
-
C言語でCSVファイルの行数を読...
-
自動で番号を振りたい
-
ヒアドキュメントの中のfor文
-
csvの内容を行単位で削除したい
-
ログファイルが一定行数を超え...
-
【PHP】csvファイルへの書き出...
-
配列同士の足し算のループ処理
-
掲示板のコメント削除
-
バイナリファイルの内容を、そ...
-
FortranのOPEN文
-
pythonのファイルの並びでの読...
-
配列をファイルに書き込む方法
-
文字列(丸数字)の文字化けに...
-
CSVファイルの最終行のデー...
-
複数行のデータのPOST処理に関して
-
doxygenを使用する環境について
-
PHPでCSVの一部の行を編集したい
おすすめ情報