我的站点文件夹中有数十个 php 文件。它们都在开头有一个注释行,即:
//This is a php file
每当我包含一个文件时,我想检查它是否在开头有以下注释行。我该如何处理?
我的站点文件夹中有数十个 php 文件。它们都在开头有一个注释行,即:
//This is a php file
每当我包含一个文件时,我想检查它是否在开头有以下注释行。我该如何处理?
用这个:
$f = fopen('yourFile.php', 'r');
$line = fgets($f);
fclose($f);
(来源:从文件中读取第一行的最快方法)
然后你可以检查$line
,像这样:
if (strpos($line,'//This is a php file') !== false) {
echo 'true'; //Found
}
注意:正如@salathe 所述,您需要执行以下操作:PHP:从文件中读取特定行
$file = 'text.php';
if($f = fopen($file, 'r')){
$line = fgets($f); // read until first newline
fclose($f);
}
where text.php is the file you include.
不完全回答您的问题,但可能是检查包含文件是否实际上是您系统的一部分的更好解决方案,如下所示:
您的主文件(包括其他文件)具有以下行:
define("SYSTEM_LOADED",true);
或使用不同的全局变量。现在在包含的文件中测试如下:
if(!defined("SYSTEM_LOADED")) die("System is not loaded");
这种方法将测试放在包含的文件中,而不是主文件中。您的方法的缺点是,对于每个文件都必须打开文件,这对于一个或几个文件来说很好,但是在多个文件之后会对您的应用程序产生影响。