2011-08-12 26 views
6

Tôi đang cố gắng phân tích cú pháp một số HTML với Xpath nhưng tìm ra các liên kết tôi muốn nhận được được tạo ra bởi một số javascript và không chỉ sử dụng một neo thông thường. Javascript như sau:Nạo các biến Javascript vào PHP

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

Bây giờ, tôi đã sử dụng XPath để lấy mã kịch bản qua:

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

nào trả về:

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

Câu hỏi của tôi là. Làm cách nào để đưa dữ liệu này vào một mảng giống như parse_url hoặc tương tự? Tôi có nên chỉ preg_match_all biến lưu trữ chuỗi? Nếu vậy, tôi sẽ sử dụng regex nào? Hoặc là có một cách tốt hơn để phân tích cú pháp và lấy dữ liệu tôi muốn?

Cảm ơn trước!

Trả lời

3

Bạn có thể thử:

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

Tôi nghĩ rằng các biến của bạn sau đó sẽ là $ array [1] và $ array [2].

+0

Làm việc như một sự quyến rũ. Cảm ơn rất nhiều. Tôi thực sự cần phải tốt hơn với regex. Tôi luôn luôn cần giúp đỡ với nó – tr3online

2

Bạn có thể sử dụng này

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

$matches[1] sẽ chứa các tên biến, và $matches[3] sẽ chứa các giá trị của họ.

Các vấn đề liên quan