phpで外部に置いたファイルを読み込んで取り込むには方法。
地味に色々方法があるんだけど、忘れちゃうんだよね、のメモ。
まず基本。
全体の取り込み
$data=''; if (file_exists($read_file)){ if( ($f = fopen($read_file,'r'))===true ){ while(!feof($f)){ $data.=fread($f,$size); } } fclose($f); }
読込限定とかその辺のオプションは、マニュアル参照ってことで。
無かったら追加(+)のオプションが付いてるときは、file_exists()で確認しなくても、いいといやいい。
fread()でなくて、fgets()でもいい。
ファイル全体を一気に読み込んで全て文字列に格納
$data = file_get_contents($read_file);
行数が配列数になる。
ファイル全体を一気に読み込んで1行ごと配列に格納
$array_data = file($read_file, FILE_IGNORE_NEW_LINES);
『FILE_IGNORE_NEW_LINES』を指定することで、空行を読み飛ばしてる
ファイル全体を一気に読み込み、同時に出力
readfile($read_file);
出力するまでがセット。
CSVを取り込む
fread()・fgets()の変わりにfgetcsv()を使うとcsvを取り込めるんだけど、
日本語がマルチバイトな文字のせいで、
文字コードが違ったり『"』で囲っていなかったりすることで文字化けが起きてしまう。
それを対応してる人がいた。コレはなんてステキ。
※PHP5でfgetcsvが正常に動作しない : ::yossy.blog::
XMLを取り込む
$f_xml = file_get_contents($read_file); $xml_parser = xml_parser_create(); xml_parse_into_struct($xml_parser,$f_xml,$array_data); xml_parser_free($xml_parser);
$read_fileは勿論xmlファイル。
更新@2011.01.04 11:45
コメント