質問: "($keyword"); if(@!fopen($url,'r')){ echo "ページなし"; }else{ echo "ページあり"; } XXXXに入れるキーワードは大概正常に動作するのですが 「イチロー」と入れると「ページなし」と判断されます。 出力されるURLは以下と同様なので、ページは存在すると 判断されるかと思うのですがうまくいきません。 文字コードをUTF-8にしているので横棒「ー」部分がうまく変換されずに 認識されていないのではないかと思うのですが具体的にはどの様にすれば よいのでしょうか。 ご教授のほど宜しくお願い致します。
回答: 文字コードの変換が間違っているわけではありません。 Wikipediaでは呼び出し時にUser-Agentを必要とする場合があるようです。このため、URLが正しくても、PHPのfopen関数ではFALSEが返されることになります。 そこで、fsockopen関数を使ってダミーのUser-Agentを送ってやると、正しい反応が返ってきます。 以下にスクリプトを示します。 ``` = 200 && $num < 400) return TRUE; //HTTP 200-399 ならOK return FALSE; } $keyword = "イチロー"; $url = "http://ja.wikipedia.org/wiki/" . urlencode($keyword); if (! url_exists($url)) { echo "ページなし"; }else{ echo "ページあり"; } ?> ```