1

PHPでfwriteを使用しているときに問題が発生しています。次のコードはローカル コンピューターでは機能しますが、サーバーでエラーが発生します。

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if(!$fp) {
   echo 'Error: '.$errno.', '.$errstr;
} else {
   fwrite($fp, 'kool');
}

fsockopen でエラーはありません。合格し、エラーは発生しません。fwrite が書き込めません。失敗し、エラーは返されず、false のみが返されます

4

2 に答える 2

3

これは、変更/読み取り/書き込み/実行の権限を持たないリモート ファイルにアクセスする Apache/Nobody ユーザーの権限の問題です。

デバッグのためにエラーメッセージも出力する必要があります

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if(!$fp) {
    echo "Error No: ".$errno."<br />\n";
    echo "Error Str: ".$errstr."<br />\n";
} else {
    fwrite($fp, 'kool');
}
于 2010-11-16T16:05:05.283 に答える
2

共有ホストを使用している場合、ほとんどの場合、サーバーはポート 80 でのアウトバウンド接続を許可していません。通常、インバウンド接続のみが許可されます。

于 2010-11-16T16:03:55.927 に答える