簡體   English   中英

如何使用file_get_contents僅提取某些數據

[英]How to extract only certain data with file_get_contents

如何使用file_get_contents()提取$homepage變量的某個部分?

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?> 

你的問題問得不多,但是在抽象層面上,我相信你正在尋找字符串操作課程:) 這里有幾個我正在分享的鏈接,

順便說一句,這完全取決於您究竟想提取什么,如果您能用詳細的問題詳細說明,這將有助於我們及時回答您!!

干杯

PS: 除非你自己的網頁(這確實有意義:)),否則屏幕抓取是一個壞主意。 原因是你永遠不知道 WWW.EXAMPLE.COM 什么時候會發生變化,你的操作邏輯將不再有用

這是正則表達式和 PHP 的示例。

<?php
$f = file_get_contents ("http://www.example.com");
$f = preg_replace ("(\&nbsp;|\r|\n|\t)", "", $f); // optional
$f = preg_replace ("/\s\s+/", " ", $f); // optional spaces

if (preg_match ("/<h1>(.*)<\/h1>/", $f, $res)) {
    $data = $res [1];
}

echo $data;
?>

最好的解決方案可能是在加載后處理$homepage變量。 看看字符串函數正則表達式

file_get_contents()支持offsetmaxlen選項,可用於控制文件的哪些部分被加載,但是當在非本地文件上使用時, offset行為被文檔描述為“不可預測”,如您的示例。

也就是說, maxlen可能是安全的,因此如果您知道您想要的內容將在文件的前 N ​​位中,您可以使用它來修剪結尾。 因此,如果您確定只需要主頁的前 100 個字節,您可以執行類似file_get_contents ( 'http://www.example.com/', false, NULL, 0, 100) 但是除非你想要前 100 個字節,否則你仍然需要做一些后處理。

有關更多信息,請參閱http://php.net/manual/en/function.file-get-contents.php (除了maxlen這些都是默認值。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM