dポイントプレゼントキャンペーン実施中!

PHPについての質問です。
初歩的な質問ですがどうかお付き合いいただけたらと思います。

PHPで外部ファイルを読み込む際、csvファイルなどを1行ずつ読み込んだ場合、行の最後の改行まで代入されます。

例えば
////test.php///////////////
<?php
$filename = list.csv;
$fp = @fopen($filename,"r");
$data = @file($filename);
@fclose($fp);
?>
////////////////////////////

////list.csv////////////////
1,2,3,4,5
6,7,8,9,10

////////////////////////////

とする場合
$data[0]には 1,2,3,4,5 プラス改行のデータ
$data[1]には 6,7,8,9,10 プラス改行のデータ
が代入されます。
この改行のデータを除くためにはどのようにすればよいですか?

初歩的な質問で申し訳ないのですが、よろしくお願いします。

A 回答 (4件)

いかん。


コピペして$fp見てなかった。

<?php
$filename = 'list.csv';
$data = array_map("rtrim", file($filename));
?>

ですね。
CSVのデータを読みたいなら、そうですが・・・
読んだ行の改行を削除したいとの希望だと解釈しました。
    • good
    • 0

っていうか、file()はファイルハンドルをつかわないですよ



きちんとやるならfgetcsvで読んでよるとよいと思います。
(ほんとにcsvデータなら)
    • good
    • 0

<?php


$filename = 'list.csv';
$fp = @fopen($filename,"r");
$data = array_map("rtrim", file($filename));
@fclose($fp);
?>

で、どうでしょう?
    • good
    • 0

trim()を使えばいいのでは?どうせexplodeなどで切り出して使うので



  foreach ($data as $line) {
    $list($a, $b, $c) = explode(',', trim($line));
      :
      :
    }

などとして使ってます。

#書き込むときはPHP_EOLを足して・・ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!