2009-05-21 20 views
1

URLを開いて読み込み、解析を行うファイルがあります。 そのURLが少なくなってファイルが開けない場合は、エラーメールが生成されるはずですが、端末またはkonsoleにエラーメッセージは表示されません。 どうすればいいですか? Plzヘルプ!PHPでのエラー処理

答えて

2

あなたがネットワーク経由でファイルを取得している場合は、いつでも、代わりにこのような何か(私はあなたがのfile_get_contentsを使用していると仮定している)

$file = @fopen("abc.com","rb"); 
if(!$file) { 
    @mail(.......); 
    die(); 
} 
//rest of code. Else is not needed since script will die if hit if condition 
+0

のthats何イムやって、代わりに@file_get_contentsの@fopen使用してイムしかし、私は何をしたいと、そのエラーがNOE私が実行したときに、端末にエラーメッセージを取得したコードイムのこの種を使用して、端末/ Konsole.Byに表示されますですそれがそこにあります。私はtermianlにエラーメッセージshudが表示されないようにします。 – developer

+0

"@"記号はエラーメッセージを抑制します。おそらく、エラーのエコーを引き起こす他のコード行です。コードのスニペットを投稿する必要があります。そうしないと、良いアドバイスを与えるのが少し難しくなります。 – Alekc

+0

$ flag = 0; $ file = @fopen( "abc.com"、 "rb")または$ flag = 1; if($ flag == 1){メール(.......);死ぬ(); } else {..........}このコードは私が望む方法でメールを生成していますが、問題はターミナル/ konsoleでエラーが発生していることです。 URLがダウンしていてもこのファイルを実行している間はTerminal/Konsoleにエラーが表示されないはずです....私は何を言っているのか理解していますか....... – developer

0
if (!$content = file_get_contents('http://example.org')) { 
    mail(...); 
} 
1

使用カールを行うことができます。エラー処理が組み込まれており、発生したエラーを通知します。 file_get_contentsを使用しても何がうまくいかなかったかはわかりませんが、リダイレクトには従いません。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/file'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$result = curl_exec($ch); 
if ($result == false) { 
    $errorInfo = curl_errno($ch).' '.curl_error($ch); 
    mail(...) 
} else { 
    //Process file, $result contains file contents 
}