PHP4のサポートが終了してから、結構な時間が経ち、レンタルサーバーでもPHP4を打ち切るところが出てきましたが、
変更点の一つが、
php.iniのallow_url_fopenがデフォルトではoffであることです。
ってことは、http経由でごにょごにょしている人には、file関数とか、fopenとかに問題がでる恐れがあります。
それを回避するには、様々な方法がありますが、一つには、socket通信する、という方法があります。
使い方はこんなふうです。要はPHPでtelnetしてる感覚ですね。
ちなみに、以下の例では、80番ポートと決めうちしてアクセスしているので、サイトによっては別途ポートを指定する必要があります。
$domain = "www.hi-farm.net"; // 対象ドメイン
$file = "sample.php"; // URL以下のパス(GETも使えます)
$fp = fsockopen($domain, 80, $errno, $errstr, 4); // 80番ポートに接続
$out = "GET /{$file} HTTP/1.1\r\n";
$out .= "Host: {$domain}\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
stream_set_timeout($fp, 4);
while(!feof($fp))
{
$file_data0 .= fget($fp);
}
fclose($fp);
セキュリティうんぬんはわかるので、PHP側での対応はわかるけど、php.iniでしか変えれないのよね。。。
レンタルサーバーやっている業者さんは、単に「変更されますので準備しろ」だけでなくて、テストする環境を用意してくれよ
って思います。。。
ぐちってしまった。。。