PHPでcURLを使用して、リモートxmlファイルをローカルフォルダに取得する関数を作成しています。すべてはしかし、私が質問している正常に動作します:リモートファイルが存在しない場合PHP:CURLライブラリ:curl_execのステータスを取得
$fileIn = curl_init("http://some-remote-host.com/file.xml);
$fileOut = fopen('myLocal.xml", "w");
curl_setopt($fileIn, CURLOPT_FILE, $fileOut);
curl_setopt($fileIn, CURLOPT_HEADER, 0);
$isCopied = curl_exec($fileIn);
curl_close($fileIn);
fclose($fileOut);
if(!$isCopied)
return false;
else
//do something else
私が読んドキュメント、$ isCopiedに基づきが虚偽であることを想定している、とmyLocal.xmlがあってはならないが、私のif(!$isCopied)
動作していないようです。そして、この私のmyLocal.xmlの内容である
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL something.xml was not found on this server.</p>
<hr>
<address>Apache Server at somehost.com Port 443</address>
</body></html>
私の質問は:それは成功したときに、それがなかったときに私を伝えるブールの変数を取得する方法。 (リモートファイルが存在しない場合を意味します)。
ありがとうございます。
印刷しようとしましたが、できませんでした。どうして? –
curl_exec($ fileIn)の直後に印刷しましたか?その場合は、curl_errno($ ch)を使ってエラーが発生していないかどうかを確認してください(また、var_dumpは単純なエコーよりもデバッグに適しています) – Itako
それは変です。 curl_getinfoは常に0です:( –