我在MAMP中创建了一个index.php页面。
我的index.php读取如下所示。我通过localhost:8888访问它。
<?php
echo file_get_contents("http://stackoverflow.com");
?>
然而,我不会像我认为的那样从此页面返回html源代码,而是将http://stackoverflow.com作为常规网页返回,就像您现在正在查看的网页一样。
我的MAMP正在使用PHP 5.5.10。 user_agent已设置且allow_url_fopen已启用。
我非常困惑。我非常感谢任何解释:)
答案 0 :(得分:1)
如果您想查看纯文本,可以使用以下内容,
<?php
header('Content-Type:text/plain');
echo file_get_contents("http://stackoverflow.com");
?>
您在自己的版本中看到的内容是正确的,因为HTML是由您的互联网浏览器呈现的。
答案 1 :(得分:1)
它正在返回html,浏览器正在解释它。
您可以尝试将输出包装在标记中:
<?php
echo '<code>' . file_get_contents("http://stackoverflow.com") . '</code>';
?>
或者将标题设置为text / plain而不是html:
<?php
header('Content-Type: text/plain');
echo file_get_contents("http://stackoverflow.com");
?>
或者如果你想保留标题而不是将输出注入代码标记:
<?php
echo htmlspecialchars(file_get_contents("http://stackoverflow.com"));
?>
我更喜欢最后一个。
答案 2 :(得分:0)
php脚本的结果默认发送到bowser,所以你的代码
<?php
echo file_get_contents("http://stackoverflow.com");
?>
正在阅读网页,然后将其发送到您的浏览器。所以它看起来只是显示你读过的页面。
如果您将其更改为
<?php
$page = file_get_contents("http://stackoverflow.com");
?>
然后,您可以使用存储在$ page中的网页源执行某些操作。