Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果文件存在脚本_Php_Require - Fatal编程技术网

Php 如果文件存在脚本

Php 如果文件存在脚本,php,require,Php,Require,我在MySite/Topics/index.php上使用一个静态页面,它通过php和MySQL显示动态页面。我想创建两个并行的动态页面系列(URL和URL2),显示来自三个可能位置的内容 1) 默认情况下,每个动态页面(例如MySite/Topics/Ecology)显示存储在数据库表中的内容(如果数据库表中没有任何内容,则该页面根本不显示任何内容) 2) 我已经创建了一系列的“影子页面”,这些页面的URL类似于MySite/Topics/Ecology2,显示的内容存储在一个文本文件中,该文件

我在MySite/Topics/index.php上使用一个静态页面,它通过php和MySQL显示动态页面。我想创建两个并行的动态页面系列(URL和URL2),显示来自三个可能位置的内容

1) 默认情况下,每个动态页面(例如MySite/Topics/Ecology)显示存储在数据库表中的内容(如果数据库表中没有任何内容,则该页面根本不显示任何内容)

2) 我已经创建了一系列的“影子页面”,这些页面的URL类似于MySite/Topics/Ecology2,显示的内容存储在一个文本文件中,该文件的名称与去掉的“2”相同(例如Ecology.php)。这些页面对于我仍在撰写的文章或存储笔记非常有用

3) 如果静态页面不存在,那么我希望默认为另一个页面,比如Workshop.php。URL将是相同的-MySite/Topics/which-但是它不显示which.php中的内容(在本例中不存在),而是显示Workshop.php中的内容

那么,确定文件是否不存在并链接到其他文件的最佳方法是什么

我想到了两种可能的解决方案,尽管我真的不知道如何实现这两种方案

1) 我要显示的静态页面的名称(例如生态)将始终与数据库表中的值(字段URL)匹配。因此,如果我的数据库表具有值“Migration”,它将尝试包含一个名为Migration.php的文件。因此,也许有某种解决方案可以将数据库值与文件名相匹配

2) 如果我使用require命令包含一个文件,但该文件不存在,它将显示一个错误并终止我的页面。有没有办法用一个命令来代替这个错误,从而链接到另一个文件

下面是我的一个包含脚本的示例,其中$MySite=网站名称,$Section=部分(例如主题)

谢谢

$inc_file = $BaseINC."/inc/D/$MySite/$Section/$URL.php";
if (file_exists($inc_file)) {
    require_once($inc_file);
} else {
   // error message or default page or whatever
   exit();  // kills the rest of the code below
}

我假设您的
$BaseINC
var拥有绝对路径的其余部分。

我认为包含页面不是更好的方法。 您还可以将页面的数据保存在数据库中,并动态构造页面

无论如何,在需要或包含文件之前,您可以使用php函数测试文件是否存在:

if(file_exists($filename){
     require_once($filename);
}
if(file_exists($filename){
     require_once($filename);
}