2011-08-12 17 views
6

Próbuję parsować HTML z Xpath, ale dowiaduję się, że linki, które chcę uzyskać, są generowane przez niektóre javascript i nie używają zwykłej kotwicy. Javascript jest następujący:Skrobanie zmiennych JavaScript do PHP

<script type="text/javascript"> 
    var Hyperurl="ab5"; 
    var Hyperlink="46439157"; 
</script> 

Teraz Użyłem XPath aby pobrać kod skryptu poprzez:

$xpath->query('//script[contains(.,"Hyper")]'); 

która zwraca:

var Hyperurl="ab5";var Hyperlink="46439157"; 

Moje pytanie brzmi. Jak mogę uzyskać te dane w tablicy podobnie jak parse_url lub tym podobne? Czy powinienem po prostu preg_match_all zmienną przechowującą ciąg? Jeśli tak, to z jakiego regexa skorzystam? Czy istnieje lepszy sposób analizowania i pobierania danych, które chcę?

Z góry dziękuję!

Odpowiedz

3

można spróbować:

preg_match_all('/"(.*?)"/', $variables, $array); 

myślę, że będzie wówczas zmienne $ array [1] i $ tablica [2].

+0

Pracował jak urok. Wielkie dzięki. Naprawdę muszę się lepiej z regex. Zawsze potrzebuję pomocy z tym – tr3online

2

Można użyć tego

preg_match_all('/var\s+(\w+)\s*=\s*(["\']?)(.*?)\2;/i', $js, $matches); 

$matches[1] będzie zawierać nazwy zmiennych, a $matches[3] będzie zawierać ich wartości.