このサイトは数ヶ月前から稼働しており、正常に動作しています。 URLのデータから請求書を作成するPHPページがあります(たとえば、viewinvoice.php?id = 250はレコード250に基づいて請求書を作成します)。このページはウェブブラウザからアクセスでき、正常に動作します。ローカルファイルにアクセスしようとすると、curlがfalseを返す原因は何ですか?
完全に異なるページ(つまり、test.php)で、私はcURLを介してそのファイルにアクセスしようとしています。しかし、私は呼び出しを行いvar_dump結果、私はbool(false)を取得します。
はここでcURLの呼び出しを行う機能です。
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
HOMEは、完全なURL(例えばhttp://www.example.com/)を示す定数です。
$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242');
echo $invoice_contents;
var_dump($invoice_contents);
私は、外部URL(すなわちhttp://www.google.com/)とうまくページがロードするためのURLを変更しようとしました。私はGoogleのホームページを取得します。同じドメインにあるページは読み込まれません。これが起こる理由はありますか?
私はサーバー管理者ではありませんが、サーバーへのルートアクセス権を持っています。私は最近設定を変更していないが、サーバー管理者がApacheまたはPHPのバージョンをアップグレードしている可能性がありますか?
いずれにしても、この作業を再度行うために変更できる設定はありますか?
P.S.私はちょうど外部サーバー(別のドメイン)からこの正確な呼び出しをしようとしたとうまく動作します。あなたのカールの実行中に失敗したか見ます
echo curl_getinfo($ch) . '<br/>';
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
:あなたのカールを実行した後
あなたのエラーをテストするには、この変数を入れた後、私はちょうどcurl_close($ chを)前にこれらの行を追加し、要求についての詳細を見ることができました。私は間違いなくこのアプローチを将来使用する予定です。残念ながら、私はこれを試してみる前に問題を解決したので、エラーはありませんでした。このサイトは以前と同じように動作しました。私はそれがまだ壊れていたと思うとは思っていませんでしたが、何が間違っていたかわからないので...私はそれが欲しいと思います。もう一度やり直したら、この情報を必ず使用します。 – codescribblr