2013-11-04 32 views
1

提取經度,我需要在PHP中的正則表達式來提取這個網站的經度和緯度:使用正則表達式從隱藏的輸入

<input type="hidden" value="53.484561000000" id="latitude" /> 
<input type="hidden" value="-2.951027000000" id="longitude" /> 

我覺得這樣的事情可能工作:

preg_match('/id="latitude"\s*value="([^"]+)"/', $scrapedHTML, $lat); 
preg_match('/id="longitude"\s*value="([^"]+)"/', $scrapedHTML, $lon); 

當我做$ lat或$ lon的var_dump時,我得到array(0){}

我在哪裏出錯了?

+4

您的源代碼包含'value ='然後'id ='。但是你的正則表達式先查找'id =',然後'value ='。不匹配。 – mario

+3

嘗試用HTML/XML解析器解析它,它是這項工作的更好工具。 –

回答

2

您應該切換正則表達式的兩個部分。 嘗試:

/value=\"([^"]+)\"\s*id=\"latitude\"/ 
/value=\"([^"]+)\"\s*id=\"longitude\"/ 
+0

感謝這工作。 –

相關問題