$buff=file("data.dat");
$element = explode(",",$buff);
echo $element[0];
上記のようにしてもArrayとだけ表示されます。
なにか初歩的なことを見落としていると思うのですが
なぜなんでしょうか?
$buff=file_get_contents("data.dat"); もしくは
$element = explode(",",$buff[0]); などのようにしないと配列を分割している格好になります。
explode()に渡す二番目の引数は文字列でないといけません。
file()関数はファイルの内容を一行ごとの配列で返すので、直接はexplode()に渡せないのです。
file()のかわりにfile_get_contents()を使ってください。
ありがとうございます。
少々勘違いが入っていたようです。
参考にさせていただきます。
推測ですが、data.datというファイルはカンマ区切りで複数行からなるテキスト(CSVのようなもの)だと思います。
ですのでfile()の返り値は各行内容を要素とする配列となります。
したがって各行の内容をexplode()するためにはforeachなどを
使って要素を取り出す必要があります。
$buff=file("data.dat");
foreach($buff as $tmprow) {
$element = explode(",",$tmprow);
echo $element[0];
}
ありがとうございます。
私の勘違いも混じっておりました。
参考にさせていただきます。
file() はファイルを配列に入れて返します。 配列の各要素はファイルの各行に対応します。
data.datを
a
b
c
にすれば
$buff=file("data.dat"); echo $buff[0];
で
a
と出力されます。
ありがとうございます。
参考にさせていただきます。
既に出揃っているようですが、具体的にどのような中身になっているかを確認することをまず行ってから、1~4の回答を読み直すと理解が深まると思いますので、あえて書き込みいたします。
$buff=file("data.dat"); print_r($buff);
の2行を実行してみてください。
$buff の中身がどのようになっているかを見ることが出来ます。
その次に
$buff=file("data.dat"); $element = explode(",",$buff); print_r($element);
の3行を実行してみてください。
$element の中身がどのようになっているかを見ることが出来ます。
以上、確認してみてください。
ありがとうございます。
順を追って確認を行うというもの
遠回りのようですが確実な手ですね。
参考にさせていただきます。
ありがとうございます。
参考にさせていただきます。