【问题标题】:PHP cURL getting plaintextPHP cURL 获取明文
【发布时间】:2011-03-03 01:10:02
【问题描述】:

我在 PHP 中使用 cURL 来获取网页内容,效果很好。但是我的程序现在要求我只从目标站点获取纯文本,而不是 HTML。我已经对此进行了广泛的研究,但似乎没有人知道答案。我也尝试在我的 cURL 选项中设置 CURLOPT_TRANSFERTEXT=1,但这似乎对结果没有影响。

知道为什么会这样吗?

【问题讨论】:

    标签: php curl plaintext


    【解决方案1】:

    确保您具备以下条件:

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    

    curl_exec 的返回值应该是数据。

    【讨论】:

    • 这是我目前为获取数据所做的。我只想要纯文本。不是 HTML,因为它提供了
    • @Alan:如果您不希望在将 HTML 标签打印到您的页面时呈现,请使用htmlentities。如果您不想要 HTML 标记期间,请使用 strip_tags
    【解决方案2】:

    我想这就是你要找的东西:

    <?
    $address = file_get_contents('http://www.thesite.com/file.html');
    echo $address;
    
    
    
    $file = file_get_contents('./file.txt', true);
    
     or 
    
    $file = file_get_contents('./file.txt', FILE_USE_INCLUDE_PATH);
    
    ?>
    

    【讨论】:

    • 不是普通的,而是整个页面 --> $address = file_get_contents('php.net/');
    • 我认为不可能只以文本格式分隔整个文件,因为它不会返回格式化的内容,并且会搞砸一切......如果你想返回一个文本文件,它是最好阅读 xml 文件甚至文本文件。
    【解决方案3】:

    其实我确实喜欢这样来获取另一个页面的内容。

    <?php
    function curl_get_file_contents($URL)
        {
            $c = curl_init();
            curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($c, CURLOPT_URL, $URL);
            $contents = curl_exec($c);
            curl_close($c);
    
            if ($contents) return $contents;
                else return FALSE;
        }
    
    
    echo curl_get_file_contents("http://www.php.net");
    ?>
    

    但它会将全部内容返回给我。

    【讨论】:

      【解决方案4】:

      您的意思是要去掉页面上的所有 HTML 标签?

      只需使用strip_tags() function

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-09
        • 2012-06-15
        • 2018-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多