来自file_get_contents的奇怪结果

时间:2015-05-21 21:29:12

标签: php file-get-contents

<?php

    $content = file_get_contents('http://www.inc.com/patricia-fletcher/how-to-avoid-the-most-common-start-up-marketing-mistakes.html');
    var_dump($content);

?>

为什么要退货?

strange result

如果我用 http://google.com 替换网址,一切似乎都没问题。

2 个答案:

答案 0 :(得分:1)

服务器正在返回内容gzip:ed。

Screenshot from inspector

因此,您需要gunzip才能阅读它。一种方法是使用Zlib函数:

$zd = gzopen('http://www.inc.com/patricia-fletcher/how-to-avoid-the-most-common-start-up-marketing-mistakes.html', "r");
$contents = gzread($zd, 100000);
gzclose($zd);

echo $contents;

输出:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>

    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

    <title>How to Avoid the Most Common Start-Up Marketing Mistakes | Inc.com</title>
<meta name="description" content="Know when and where to invest and get the most from your marketing dollars" />

...

答案 1 :(得分:1)

响应是gzip压缩的,使用gzdecode()

$c = file_get_contents( 'http://www.inc.com/patricia-fletcher/how-to-avoid-the-most-common-start-up-marketing-mistakes.html' );
echo gzdecode($c);