2017-09-22 19 views
-1

私の会社のサイトでは、さまざまな場所でfile_get_contents()を使用して(同じサイトから)完全なWebページを取得してから、ユーザーにダウンロードするPDFに入れます。いくつかの不思議な理由のために、時にはうまくいきません。私は絶対パスとURLの両方を指定しようとしましたが、同じ結果が出ました。時々それは何も戻さない。エラーも返されません。ランダム、断続的、および時折起こっているように見えるので、タイミングに敏感な問題であるかどうかは疑問です。何が起こっているのでしょうか?何が起こっているのか分かりますか?時折しかないが、頻繁にユーザーが不平を言うほど頻繁に起こる。このコールは、それが要因となる可能性がある場合、PDFを送信するためのmail()へのその後の呼び出しに近接しています。PHP file_get_contents()が断続的かつ時折失敗する

+0

相対絶対的なURLを使用していますか? – rtfm

+0

'curl'を使用します.... –

+3

何が失敗し、それは意味がありません? –

答えて

0

ファイルの内容を読み取る前に、file_existsを実行してください。これは、ファイルが存在することを確認することです。第二に、file_get_contentsは、障害が発生した場合にfalseを返します。また、それもチェックします。最終チェックとして、あなたが読もうとしているファイルが空である可能性があります。 file_get_contentsは文字列(内容がある場合)を返しますので、strlenチェックを実行して、ファイルに実際に含まれていることを確認できます。

file_get_contentsがnullを返す場合、これはファイルが空であり、アプリケーションのどこかに根本的な問題がある可能性があることを示します。読み込みしようとしているファイルがアプリケーションによって作成されている場合は、ファイルを作成するコードを再訪して、実際にファイルに内容が書き込まれてから書き込まれるようにします。

+0

私は絶対ファイルパスを使用していたが、ファイルはまるでWebページ、つまりPHPコードが実行されました。そんなことがあるものか?ファイルの絶対パスは、file_get_contentsを持つWebページとして解析されますか?代わりにURLに入れていますが、以前はうまくいきませんでしたが、これまでのところはうまくいくようです。非常に困惑しています。これは95%の時間でうまく動作しますが、もう5%は静かに何も返しません。 – Mxsmanic

+0

file_get_contentsは、それが与えられたファイルの内容をそのまま返します。また、URLをWebページに渡すこともできます。この例では、WebページのソースをコンパイルしてWebブラウザで表示する場合と同様に、コンパイルされたWebページのソースを返します。ファイル、おそらくPDFを返すようにしたいのですか?次に、file_get_contentsにファイルの絶対パスまたは相対パスを指定する必要があります。さらに私が助けるために、コードスニペットが大きな助けになるでしょう – GNewton

関連する問題