file_get_contents不适用于MAMP

时间:2014-08-03 21:36:36

标签: php mamp file-get-contents

我在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已启用。

我非常困惑。我非常感谢任何解释:)

3 个答案:

答案 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中的网页源执行某些操作。