PHPでURL上のコンテンツを読み込む

(2/3)

サンプル・プログラムの解説:文字コードの扱い

0030: //メインプログラム
0031: mb_internal_encoding('UTF-8');       //Google newsのエンコーディングはUTF-8

インターネットで日本語を使う場合、複数の文字コードがあることはご存じの通り。代表的なのは、Windows で使われている シフト JIS、UNIX 系で使われている EUC-JP、そして国際標準である UNICODE(UTF-8)など。これを間違えると、表示の文字化けを起こしたりする。
文字コードの詳しい話は「文字コードの話」をご覧いただきたい。
space
PHP でテキストファイルを扱う場合、まず、そのファイルの文字コードに注意する。
Google News は UTF-8 で記述されているので、 プログラムの冒頭で関数  mb_internal_encoding  を使い、内部処理で UTF-8 を使うことを宣言する。もし文字コードが EUC なら"EUC"と、UTF-8 なら"UTF-8"と記述すればよい。
PHP のマニュアルによると、シフト JIS での動作は保証していないとあるが、この程度のプログラムでは問題なく動作するようだ。(より複雑なプログラムでは、すべてのテキストを EUC-JP に変換する必要があるかもしれない)

サンプル・プログラムの解説:ファイルのオープン

0033: $fp = fopen($InputFile, 'r');
0034: if ($fp == FALSE) {                  //ファイルオープン・エラー
0035:     echo 'error > Google Newsを読み込めませんでした!';
0036:     exit(1);
0037: }

インターネット上のコンテンツを読み込むために、まず、関数  fopen  を使って“読み込み”オープンする必要がある。引き数は URL である。
ちなみに、PC のローカルディスクにあるファイルをオープンする場合も関数  fopen  を使う。
space
正常にファイルがオープンできると、関数  fopen  はリソース番号を返す。今後、このファイルへのアクセスはリソース番号を介して行うことになるので、リソース番号を変数 $fp に保存しておく。
関数  fopen  はエラーを発生する場合がある。たとえば、引き数に指定されたファイルがない場合(HTTP サーバの 404 エラー)などだ。そこで、エラー対処も記述しておく。
関数  fopen  は、エラー発生時に FALSE を返す。もし変数$fp が FALSE だったら、エラー表示を行い、関数  fopen  によってプログラムを強制終了する。
この項つづく
header