我正在尝试读取托管在另一台服务器上的外部文件,但我遇到了问题。
在这里,我确定了变量:
$variable1 = "test";
$variable2 = "testing";
在此,我确定要阅读的网址:
$url = "http://test.com/page.php?v1=" . $variable1 . "&v2=" . $variable2;
在这里,我读了外部文件:
$content = file($url);
$reading = $content[0];
echo $reading;
奇怪的是什么都没有出来。我尝试输入实际的URL并且它确实有效,但是,当PHP尝试这样做时,它会显示为空白。
我知道这不是一个致命的错误,因为我试着在那里放一些常规文本。所以,有一些错误,就是没有正确读取文件。此外,我确实确保读取服务器没有被包含文件的服务器阻止。
任何建议都将不胜感激。
答案 0 :(得分:0)
此外,我确实确保读取服务器没有被包含文件的服务器阻止。
你是如何确定的?
首先,确保on
中的allow_url_fopen
为php.ini
。
如果是on
,请尝试设置用户代理。远程文件可能需要有效的用户代理。
ini_set('user_agent', 'Your browser\'s user agent or whatever');
如果是off
,请尝试使用cURL library来请求远程文件。您也可以使用cURL来设置用户代理。
答案 1 :(得分:0)
您可以尝试PHP的功能 file_get_contents
echo file_get_contents($url);
答案 2 :(得分:0)
为了读取文件并从远程URL解析它们,您应确保在php.ini配置中启用 allow_url_fopen 选项。
请注意,出于安全原因,默认情况下会禁用此选项。
答案 3 :(得分:0)
如果您使用URL作为文件名,则必须在php.ini中启用allow_url_fopen。我会从那里开始。
答案 4 :(得分:0)
如果您要获取某个网站,并且它以<html>
之类的内容开头,那么当从浏览器查看时,回显$ content [0]将不会显示。
尝试:
echo htmlentities($content[0]);
或者:
print_r($content);
答案 5 :(得分:0)
file()
将数据加载到数组中。然后,您只回显本文档的第一行(echo $reading[0]
)。第一行可能只是一个<html>
标签,也可能是一个doctype声明。
如果您只是想回显文件的全部内容,请执行以下操作:
echo file_get_contents($url);
获取指定的URL并将其作为单个字符串返回 - 不进行行解析,不创建数组。只需一个包含整个文件的纯字符串。