打开文件php
假设我有一个名为“utils.php”的文件,我在其中打开一个文件进行写入或读取:打开文件php,php,file,path,include,dependencies,Php,File,Path,Include,Dependencies,假设我有一个名为“utils.php”的文件,我在其中打开一个文件进行写入或读取: $myfile="myfile.txt"; $fileout=fopen($myfile,'w') or die("Not opened"); 现在,如果我在另一个目录下有另一个脚本,请说“mydir/myscript.php”,并在“myscript.php”中包含“utils.php”,文件(尝试)从哪里打开?“utils.php”的路径或“myscript.php”的路径。 如果它是“myscript.p
$myfile="myfile.txt";
$fileout=fopen($myfile,'w') or die("Not opened");
现在,如果我在另一个目录下有另一个脚本,请说“mydir/myscript.php”,并在“myscript.php”中包含“utils.php”,文件(尝试)从哪里打开?“utils.php”的路径或“myscript.php”的路径。
如果它是“myscript.php”的目录,这意味着包含“utils.php”的每个脚本都将在其目录中搜索名为“myfile.txt”的文件,不是吗?除非指定了绝对路径(通过在路径前加“/”),否则假定路径相对于运行该命令的脚本的目录,即使脚本是从其他地方调用的。因此,如果您在“/var/www/localhost/htdocs/foo.php”中指定了一个include,则include
语句将在同一文件夹中查找,但在包含的文件中,任何fopen语句都将在php文件所在的文件夹中查找(除非另有指定)。如果include
文件,该文件的内容将放在当前文件中。然后,代码将运行。让我举个例子。您有四个文件:
- mydir/
- index.php:
include('../file.php');
if ($file) {
echo fgets($file);
fclose($file);
}
- file.txt
mydir directory
base level
- file.php:
$file = @fopen('file.txt', 'r');
- file.txt
mydir directory
base level
如果运行mydir/index.php,首先,file.php包括。然后,index.php包含:
$file = @fopen('file.txt', 'r');
if ($file) {
echo fgets($file);
fclose($file);
}
之后,将执行上述代码。因此,输出为:
mydir directory
你为什么不试试看呢?我还不能完全确定我是否理解-所以我的文件将从mydir/中包括在示例中?include
是一个命令fopen
是一个命令。如果include
a.php文件,则运行include
命令的脚本将在其所在的目录中查找目标.php文件。引用文件的任何命令也是如此;utils.php
是否由foo.php
调用并不重要,后者是由bar.php
调用的,后者是由index.php
等调用的。它只关系到从何处执行fopen
命令。