当我在http://php.net/manual/en/function.file-get-contents.php查看file_get_contents
函数时,我注意到它需要一个名为$use_include_path
的可选第二个参数,但我无法理解它的用途以及如何更改{ {1}}行为。
你能为我提供一个例子,以便更好地理解它吗?
答案 0 :(得分:2)
include_path
类似于操作系统中的PATH
env变量:它定义了一组目录,用于查找包含/读取的文件。
默认情况下,它是.:/usr/share/php
,表示当前目录.
和/usr/share/php
。分号:
在类UNIX环境中充当分隔符。环境的分隔符以PATH_SEPARATOR
常量指定。
因此,通过使用相对路径调用file_get_contents
而将第二个参数调用为true
,PHP将首先从当前目录查找,然后在找不到指定文件时从{{1}查找}。
您可以通过调用set_include_path函数来设置include_path的任何路径集。保留以前的/usr/share/php
是很好的,这样您就不会破坏设置:
include_path
答案 1 :(得分:1)
例如,我有文件/tmp/code.txt
,我需要获取此文件的内容,我可以这样写:
var_dump(file_get_contents('code.txt'));
但是会出现错误(No such file or directory
),因此我必须描述文件的完整路径,但是如果我不想这样做,我可以编写如下内容:
set_include_path(get_include_path() . PATH_SEPARATOR . '/tmp/');
var_dump(file_get_contents('code.txt', FILE_USE_INCLUDE_PATH));
它会起作用!
如果您拥有库或子项目,或者将子项目安装到另一个项目中,或者您有SDK或其他内容,这非常有用...
你可以在你的模块/库的引导脚本中使用set_include_path
,但在你的代码中,你只能清楚地使用没有完整路径的特定文件,只有相对......