我一直在写:
include('a.php')
include('b.php')
等。在我的脚本中包括使用函数a()
和b()
。这变得非常繁琐。有没有办法设置目录的路径,并且脚本可以访问多个文件?
我在我的剧本中试过这个:
set_include_path('.;C:\xampp\htdocs\myfunctionfolder');
我设置了一个环境变量PATH,以便在那里使用旧版本。
我还修改了php.ini以包含
include_path = ".;\xampp\php\PEAR;\xampp\htdocs\myfunctionfolder"
如果我有很多文件,如何在不必单独包含这些文件的情况下访问这些文件?设置环境变量肯定在命令提示符下有效。
我是否需要为.php文件执行其他操作才能在目录下集体访问?
答案 0 :(得分:12)
通常的做法是使用包含include
/ include_once
调用的“common.php”或“includes.php”文件(为简单起见)。 e.g。
然后 includes.php 包含:
<?php
include_once('a.php');
include_once('b.php');
?>
然后在任何脚本中都包含includes.php
文件。
但,要回答原始问题,每次调用一次只能包含一个文件。您可以使用opendir
和readdir
之类的内容来迭代特定目录中的所有文件,并将其包含在找到的内容中(自动发言)或根据您自己的文件写出每个文件。重新创造。
此外,所有设置包含路径的设置都会设置一个目录,以便在进行include
调用时查看。它不是一个自动加载文件的目录(这是我从你的帖子中得到的印象)。
答案 1 :(得分:6)
设置include_path
将不包括该目录中的每个文件,它只会将该目录添加到PHP将在包含文件时搜索的列表中。
指定require(),include(),fopen(),file(),readfile()和file_get_contents()函数查找文件的目录列表。
这将简化在深层结构或文件系统完全不同的部分中包含文件。
include('/var/somewhere/else/foo.php');
将/var/somewhere/else/
添加到php.ini中,include_path可能会变为
include('foo.php');
此外,正如其他人指出的那样,有一些常见做法,但您可以查看OOPHP和autoloading classes。这对我所知道的功能不起作用。
许多编写面向对象应用程序的开发人员每个类定义创建一个PHP源文件。其中一个最大的烦恼就是必须在每个脚本的开头写一个需要包含的长列表(每个类别一个)。
在PHP 5中,不再需要这样做。您可以定义一个__autoload函数,如果您尝试使用尚未定义的类/接口,则会自动调用该函数。通过调用此函数,在PHP失败并出现错误之前,脚本引擎将获得加载类的最后机会。
答案 2 :(得分:3)
看到这个问题:
How to include() all PHP files from a directory?
此外,就最佳实践而言,如果它们完全相关,您可以在同一文件中包含多个函数,我还建议您使用更多描述性的函数和文件名称。例如,如果a()和b()函数都与验证相关,例如,将文件命名为validation.php,并将两个函数放在那里,并尝试将它们重命名为与它们相关的内容。这将使您能够记住当您开始堆积大量功能时他们所做的事情;)
答案 3 :(得分:2)
PHP的解析器非常高效 - 你将浪费更多的时间来加载大量的单个文件而不是一个(或几个)更整体的文件。但是,如果你坚持要保持这样的隔离,你可以创建元包含文件来加载单个文件集,所以你只需要包含一个元包含文件,它会为你完成其余的工作:
meta.php:
include('a.php');
include('p.php');
...
include('z.php');
然后你只需:
<?php
include('meta.php');
在您的脚本中,您已经为您加载了所有单独的文件。
答案 4 :(得分:2)
我的大部分项目都有这样的功能:
function appendToIncludePath($path)
{
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . BASE_DIR . $path . DIRECTORY_SEPARATOR);
}
答案 5 :(得分:0)
include __DIR__ . '/../folder1/folder2/folder3/Target.php';
include __DIR__ . '/../folder1/folder2/Target.php';
它可以帮助您走任何一条路。
答案 6 :(得分:0)
下载最新的PHP zip并解压缩到C驱动器,然后下载composer并安装它,在安装过程中它会询问PHP路径,因此只需选择提取的PHP路径即可。
请按照以下步骤操作。
转到Computer
。
选择Advance System Settings
。
Environmental Varaibles
。Environmental Varaibles
的PCNAME用户变量中添加Path
Environmental Varaibles
中,在系统变量中添加Path
。cmd
。php -v
。