PHPエラーを表示するにはどうすればよいですか?

2009年06月28日に質問されました。  ·  閲覧回数 3M回  ·  ソース

Abs picture
2009年06月28日

PHPのiniファイル( php.ini )を確認しましたが、 display_errorsが設定されており、エラーレポートもE_ALLです。 ApacheWebサーバーを再起動しました。

これらの行をスクリプトの先頭に配置しましたが、単純な解析エラーも検出されません。 たとえば、 "$"変数を宣言し、ステートメント";"閉じません。 しかし、私のスクリプトはすべて、これらのエラーについて空白のページを表示しますが、実際にブラウザーの出力でエラーを確認したいと思います。

error_reporting(E_ALL);
ini_set('display_errors', 1);

何をする必要がありますか?

回答

Fancy John picture
2014年01月29日
3276

これは常に私のために働きます:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

ただし、これによってPHPが解析エラーを表示することはありません。これらのエラーを表示する唯一の方法は、次の行でphp.iniを変更することです。

display_errors = on

php.iniにアクセスできない場合は、この行を.htaccess入れることもできます):

php_flag display_errors 1
Michael Madsen picture
2009年06月28日
157

実行時にエラー出力を有効にすると、実際に何かを実行する前にファイルを解析するため、解析エラーをキャッチできません(また、この間にエラーが発生したため、何も実行されません)。 display_errorsがオンになり、適切なerror_reportingレベルが使用されるように、実際のサーバー構成を変更する必要があります。 php.iniにアクセスできない場合は、サーバーによっては.htaccessなどを使用できる場合があります。

この質問は追加情報を提供する場合があります。

user1803477 picture
2013年01月08日
145

php.iniの内部:

display_errors = on

次に、Webサーバーを再起動します。

andre picture
2014年01月29日
99

すべてのエラーを表示するには、次のことを行う必要があります。

1.ブラウザから呼び出すPHPスクリプトに次の行を含めます(通常はindex.php )。

error_reporting(E_ALL);
ini_set('display_errors', '1');

2.(a)このスクリプトに構文エラーがないことを確認します

—または—

2.(b) php.ini display_errors = Onします

そうでなければ、それらの2行を実行することさえできません!

(コマンドラインで)実行すると、スクリプトの構文エラーを確認できます。

php -l index.php

あなたは別のPHPスクリプトからスクリプトが含まれている場合、それは含まれているスクリプトに構文エラーが表示されます。 例えば:

index.php

error_reporting(E_ALL);
ini_set('display_errors', '1');

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser
Kalhua picture
2013年05月18日
52

一部のウェブホスティングプロバイダーでは、 .htaccessファイルのPHPパラメーターを変更できます。

次の行を追加できます。

php_value display_errors 1

私はあなたと同じ問題を抱えていました、そしてこの解決策はそれを修正しました。

Frank Forte picture
2016年03月29日
40

「エラー報告」または「エラーの表示」のすべての設定がPHP7で機能していないように見える場合があります。これは、エラー処理が変更されたためです。 代わりにこれを試してください:

try{
     // Your code
} 
catch(Error $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

または、例外とエラーを一度にキャッチするには(これはPHP 5との下位互換性がありません):

try{
     // Your code
} 
catch(Throwable $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}
Lead Developer picture
2014年05月05日
34

これは機能します:

<?php
     error_reporting(E_ALL);
     ini_set('display_errors', 1);    
?>
Abhijit Jagtap picture
2016年05月05日
33

使用する:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

これはそれを書くための最良の方法ですが、構文エラーは空白の出力を与えるので、コンソールを使用して構文エラーをチェックしてください。 PHPコードをデバッグする最良の方法は、コンソールを使用することです。 以下を実行します。

php -l phpfilename.php
Sumit Gupta picture
2017年09月26日
22

これをindex.phpファイルに設定します。

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
NavyaKumar picture
2015年04月01日
20

PHPファイルが存在するフォルダーにphp.iniというファイルを作成します。

php.ini内に、次のコードを追加します(コードを表示する簡単なエラーを表示しています)。

display_errors = on

display_startup_errors = on