我有一个文件,我希望另一个脚本可以使用file_get_contents
我希望它访问的文件在它上面的目录中,所以我正在使用file_get_contents('../file.php?this=that')
但是,它又回来了No such file or directory
,我不明白为什么。文件在那里。
我假设它与它是本地文件而不是远程文件有关。有什么想法或解决方法吗?
我有一个文件,我希望另一个脚本可以使用file_get_contents
我希望它访问的文件在它上面的目录中,所以我正在使用file_get_contents('../file.php?this=that')
但是,它又回来了No such file or directory
,我不明白为什么。文件在那里。
我假设它与它是本地文件而不是远程文件有关。有什么想法或解决方法吗?
file_get_contents('../file.php?this=that')
http://....
除非您使用完整的语法构建完整的 URL,否则这永远不会起作用。PHP 会将此视为获取file.php?this=that
当前目录上一级文件的请求。它不会将其视为相对 URL 并执行 HTTP 请求,而是使用本地文件系统处理程序。你很可能file.php
在那里,但由于本地文件系统没有 URL 或查询参数的概念,它不会知道剥离?this=that
并只是加载file.php
. 因此,您的“没有这样的文件错误”。
根据 PHP.net,使用 file_get_contents 函数从本地服务器读取文件的正确解决方案是使用
// <= PHP 5
$file = file_get_contents('./people.txt', true);
// > PHP 5
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
认为它可能会有所帮助,而不是使用解决方法!
该位置没有文件。
你必须使用正确的路径。
首先做一个echo getcwd();
看看现在是什么目录(你的相对路径是从哪个目录构建的)
然后仔细检查 file.php 相对于这个目录的位置。
检查文件名大小写,它可能很敏感。
请问一下为什么要用这个函数打开一个php文件?
嗯,一个答案:
$your_var = 1;
include('../file.php');
我继续使用了一些 $_SERVER 变量,将它们组合在一起以获得完整的 URL 并将其用于file_get_contents
:
file_get_contents('http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']) . '/../file.php?this=that');
那成功了。感谢大家的帮助。
像这样使用......
$string1=file_get_contents("c:/rose1/ram.txt"); echo $string1;
或者
$lines = file_get_contents('http://www.example.com/');
是getcwd() == dirname(__FILE__)
?
曾经,我遇到过使用相对路径总是在某些共享主机上引发错误的问题。我们最终使用绝对路径dirname(__FILE__)
作为基本路径(在引导程序中设置一个常量并将该常量用作基本路径值)并且一切正常。我们没有深入研究这个问题,但也许你遇到了同样的事情。我只是在这里猜测。