[英]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.