ローカル WAPM 環境、php.ini は openallow_url_fopen = オン
write.php
$fp = fsockopen('localhost',80,&$errno,&$errstr,5);
if(!$ fp)
{
echo "$errstr ($errno)
n"; }
else
{
fputs($fp,"GET / HTTP/1.0nHost: http://localhost/1. php");
fclose($fp);
}
?>
1.php は localhost のルート ディレクトリに存在しますが、write.php をテストして実行した後、
は 1.php が実行されておらず、1.php が実行されていることがわかりました。 php は個別に実行できます
理由を聞いてもいいですか?
http://localhsot/1.php を 1.php に変更しようとしましたが、動作しませんでした。プロセス中にプロンプトが表示されず、設定されたリンクを作成できませんでした
$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) { echo "$errstr ($errno)<br />\n"; }else { fputs($fp,"GET /1.php HTTP/1.0\r\nHost: localhost\r\nConnection: Close\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp);}
$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) { echo "$errstr ($errno)<br />\n"; }else { fputs($fp,"GET /1.php HTTP/1.0\r\nHost: localhost\r\nConnection: Close\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp);}
in ローカル テスト中に、他のコンピューターが私のコンピューターにアクセスするとき、IP メソッドを使用して通常どおり実行できます。つまり、私のテスト IP が 192.168.10.60 であると仮定すると、
192.168.10.3 に置いた場合
もちろん、アクセスするには絶対 IP を使用する必要があります。
2 つの異常があります
1. 私のマシンをテストホストとして使用すると、他のマシンは私のマシンにアクセスでき、localhost を使用すると正常に実行されますが、プログラムがサーバー上に配置されると、私のマシンはサーバーにアクセスできなくなります。絶対パスを書くというのは fsocketopen がリンクを張るときに書くということですが、例えばプログラムを web ディレクトリ配下の ca/ma ディレクトリに置いた場合、次の