簡體   English   中英

file_get_contents和div

[英]file_get_contents and div

我的代碼有什么問題? 我希望從中獲取所有日期,但我的數組為空。

<?php
$url = "http://weather.yahoo.com/";
$page_all = file_get_contents($url); 

preg_match_all('#<div id="myLocContainer">(.*)</div>#', $page_all, $div_array);

echo "<pre>";
print_r($div_array);
echo "</pre>";
?>

謝謝

您想解析多行內容,但沒有使用REGEX模式的多行開關。 嘗試使用此:

preg_match_all('#<div id="myLocContainer">(.*?)</div>#sim', $page_all, $div_array);

請注意,由於HTML文檔的層級性質,正則表達式不適合解析HTML內容。

嘗試添加“ m”和“ s”修飾符,新行可能在您需要的div中。

preg_match_all('#<div id="myLocContainer">(.*)</div>#ms', $page_all, $div_array);

在使用REGEX之前,請嘗試HTML Scraping Php中的HTML Scraping可能會提供一些有關如何以更優雅(可能)更快的方式進行操作的想法。

$doc = new DomDocument;
$doc->Load('http://weather.yahoo.com/');
$doc->getElementById('myLocContainer');

您需要像下面這樣在正則表達式中排除特殊字符

~\<div id\=\"myLocContainer\"\>(.*)\<\/div\>~

還結帳Wheather是否有換行問題,如@eyazici和@kgb所述

在運行正則表達式搜索之前測試您的響應。 然后,您將知道哪個部分不起作用。

暫無
暫無

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

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