PHP中file_get_contents函数中$use_include_path的定义不明确

4
当我在 http://php.net/manual/en/function.file-get-contents.php 上查看file_get_contents函数时,我注意到它有一个可选的第二个参数叫做$use_include_path,但我不理解它的用途和如何改变file_get_contents的行为。你能提供一个示例以更好地理解吗?

file_put_contents("D:/bharathi.txt","\n 评分评论 \n".print_r($result,true),FILE_APPEND); 当您像这样运行时,它将使用bharathi.txt的名称将特定变量结果存储在d文件夹中。 - user5876173
2个回答

4
在 PHP 中,include_path 类似于操作系统中的 PATH 环境变量:它定义了一个目录集合,用于查找包含/读取文件。
默认情况下,它是 .:/usr/share/php,这意味着当前目录 ./usr/share/php。在类 UNIX 的环境中,分号 : 用作分隔符。您的环境的分隔符在 PATH_SEPARATOR 常量中指定。
因此,通过使用相对路径和第二个参数为 true 调用 file_get_contents,PHP 首先从当前目录查找,然后在未找到指定文件时从 /usr/share/php 查找。
您可以通过调用 set_include_path 函数设置任何一组路径到 include_path。最好保留以前的 include_path,这样您就不会破坏您的设置。
set_include_path(get_include_path() . PATH_SEPARATOR . '/<your custompath>');

2
例如,我有一个文件 /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来为你的模块/库/任何东西设置路径,但是在你的代码中,你只需要清晰地使用特定文件而不需要完整路径,只需要相对路径即可...

并且它会起作用!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接