10


'dbas.php'が'ad.php'に含まれているかどうかを確認したい。私はコードを書きました-

ad.php

<?php if(file_exists("dbas.php") && include("dbas.php")){
// some code will be here
}
else{echo"Database loading failed";}
?>

file_exists()の部分は正常にテストされましたが、include()が正常に機能するかどうかはわかりません。ローカルホストで試したため、ファイルがディレクトリにある場合は、インクルードに失敗することはありません。したがって、大量のトラフィックが存在する場合、このコードがサーバーでどのように動作するかはわかりません。だから私のコードは正しいですか?

-ありがとう。

解決済み:回答ありがとうございます。

4

6 に答える 6

17

ファイルが含まれていることを絶対に確認したい場合は、phpのrequireメソッドを使用する方が適しています。file_existsファイルが実際に読み取り可能かどうかではなく、ファイルが存在するかどうかのみをチェックします。

requireインクルージョンが失敗するとエラーが発生します(エラーが発生する可能性がcatchあります。Cerbrusの回答を参照してください)。

編集:

ただし、インクルードが失敗した場合にスクリプトを停止させたくない場合は、次のようにメソッドis_readableを一緒に使用します。file_exists

if( file_exists("dbas.php") && is_readable("dbas.php") && include("dbas.php")) {
    /* do stuff */
}
于 2012-12-06T07:48:36.330 に答える
7

単に使用してrequireください:

try {
    require 'filename.php';
} catch (Exception $e) {
    exit('Require failed! Error: '.$e);
    // Or handle $e some other way instead of `exit`-ing, if you wish.
}

まだ言及されていないこと:次のようなブール値を追加できます:

$dbasIncluded = true;

dbas.phpファイルで、コードでそのブール値を確認します。一般に、ファイルに適切に含まれていない場合は、ページの残りの部分をレンダリングするのではなく、phpにブレーキをかけたいと思うでしょう。

于 2012-12-06T08:07:47.663 に答える
0

file_exists("dbas.php")チェックをしています。存在する場合は、インクルードを実行します。

if(file_exists("dbas.php"){
    include("dbas.php")
    //continue with you code here
}
于 2012-12-06T07:46:10.290 に答える
0

関数に機能を入れて、function_existsそこにあるかどうかを確認するために使用します。

include ("php_file_with_fcn.php");
if (function_exists("myFunc")) {
    myFunc();
    // run code
} else {
    echo "failed to load";
}

あなたの場合、インカッションファイルは

function db_connect() {
     $user = "user";
     $pass = "pass";
     $host = "host";
     $database = "database";
     mysql_connect($host, $user, $pass);
     return mysql_select_db($database);
}

およびメインファイル:

include("db_connect.php");
if (function_exists("db_connect")) {
    if (db_connect() === TRUE) {
        // continue
     } else {
        // failed to connect (this is a different error than the "can't include" one and 
        // actually **way** more important to handle gracefully under great load
     }
 } else {
     // couldn't load database code
 }
于 2012-12-06T07:50:42.683 に答える
0

コードの代わりにこのコードを使用してください。コード内でファイルがサーバーに存在しない場合、phpエラーが発生し、それは適切ではないため、次のコードを使用してください。

if(file_exists("dbas.php")) {
    include_once("dbas.php");
} else {
    echo"file is not found";
}

このコードは、ファイルがサーバー上に存在する場合、関数includeelseファイルが見つからないことを意味しますecho

于 2012-12-06T07:57:00.513 に答える
-1

書きます

echo "file is includ" 

「dbas.php」の最後に

于 2012-12-06T07:45:25.783 に答える