PHPによる外部ファイル取得

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

コメント

タイトルとURLをコピーしました