1

PHPファイルをインクルード/リクエストしようとしたときにカスタムエラーを出力する方法は?

これは私の考えでした:

<?php 

try{
    include "template/".$_GET['view'].".php"; 
}
catch (Exception $e){
    echo 'some error code'; 
};

?>

しかし、必要なファイルが存在しない場合でも、デフォルトのエラーが発生します。

4

6 に答える 6

4

コメントを変更して回答する価値があると判断しました。

file_exists()ファイルが存在するかどうかを確認するために使用します。

含まれている場合は含め、そうでない場合はカスタム エラー メッセージをエコーし​​ます。

于 2012-04-21T18:59:10.470 に答える
1

file_exists()含める前にファイルが存在するかどうかを確認するために使用します。そうすれば、エラーを処理できます。

<?php

if(file_exists('asd.php')){
    include "asd.php";
}else{
    echo "Oh no! The file doesn't exist!";
}

?>
于 2012-04-21T18:59:35.463 に答える
1

インクルード エラーは try/catch ではキャッチされませんが、インクルード スクリプト内のエラーは正しくキャッチされると思います。より良い解決策は、file-exists 関数を使用することです。例については、次の投稿を参照してください: PHP のオプションのインクルード

ファイルの存在について独自の検証を実行したら、実行中のコードを try catch でラップして、そのコードのエラーを確実にキャッチできます。

于 2012-04-21T19:00:49.113 に答える
1

ただの使用はお勧めしませんfile_exist。訪問者がファイルシステム上のファイルにアクセスできないようにするため、ホワイトリストをお勧めします。ファイル名がホワイトリストにある場合にのみ、それを表示/含めます。

于 2012-04-21T19:01:50.397 に答える
1
if ((include "template/".$_GET['view'].".php") != 'OK') {
    echo "My custom error message";
}
于 2012-04-21T19:02:05.967 に答える