2

私の質問はこれに似ていますが、正確ではありません。

そうして、script.phpに解析エラーがある場合$string = @file_get_contents('http://www.somesite.com/script.php');、boolfalseでは$stringなく解析エラーの値を取得します。エラーはローカルサイトではなく、リモートサイトにあります。

その場合を確認するために文字列の比較を行う必要があると思いましたが、検索する必要のある特定の文字列のリストはあり'<b>Parse error</b>:'ます'<b>Warning</b>:'か?リモートスクリプトのエラーをチェックするためのより良い方法はありますか?

(あなたの提案に違いが生じる場合に備えて、私は両方のドメインを管理しています。)

これが私がリモートサーバーに置いたコードです:

  if(!$_SERVER['QUERY_STRING'])
    {
      echo('Can you get me?');
    }
  else
    {
      foreach ($imnotanarray as $fail) //intentionally cause an error
        {
          echo $fail;
        }
    }

これがローカルサーバーからのコードです

$success=file_get_contents('http://www.tecbrat.com/fgc_responder.php');
$success_header=$http_response_header[0];

$failure=file_get_contents('http://www.tecbrat.com/fgc_responder.php?do=fail');
$failure_header=$http_response_header[0];

$failure2=@file_get_contents('http://www.tecbrat.com/fgc_responder.phxp');
$failure2_header=$http_response_header[0];

echo 'Success is '.$success.'and the header is '.$success_header."<br><br>\n\n";
echo 'Failure is '.$failure.'and the header is '.$failure_header."<br><br>\n\n";
echo 'Another Failure is ';
var_dump($failure2);
echo ' and the header is '.$failure2_header;
4

1 に答える 1

1

その出力を使用して、部分文字列マッチングを使用して解析エラーを検索するのが最善の策です。

それがエレガントでないと感じた場合(そしてこのように感じるのは絶対に正しいでしょう)、これを処理する正しい方法は、エラー処理を追加し、より統合された方法で解析エラーを表すことです。したがって、サービスが通常XMLオブジェクトを返す場合または、エラーデータを含むXMLオブジェクトを返します。

于 2012-08-21T18:56:42.107 に答える