简体   繁体   English

来自file_get_contents的奇怪结果

[英]Strange result from 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);

?>

Why returns this? 为什么要退货?

奇怪的结果

If I replace the URL with http://google.com everything seems to be fine. 如果我将网址替换为http://google.com,一切似乎都很好。

The server is returning the content gzip:ed. 服务器正在返回gzip:ed内容。

检查员的屏幕截图

You therefore need to gunzip it to be able to read it. 因此,您需要将其gunzipgunzip才能阅读。 One way would be to use the Zlib functions: 一种方法是使用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;

Output: 输出:

<!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" />

...

Response is gzip compressed, use gzdecode() . 响应是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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM