我通过curl获取外部页面并将其存储在变量中。然后我需要解析文档中的所有'a'标签并进行修改。为此,我需要遍历每个'a'标记。我目前的代码:
<?php
require 'phpQuery/phpQuery/phpQuery.php';
$url = $_GET['url'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/1.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
$curlUrl = 'http://localhost:8888/curl2.php?url='.$url;
$doc = phpQuery::newDocument ($result);
//loop here
$href = $doc->find('a')->attr('href');
if (preg_match($url,$href))
{
//do something
}
$doc->find('#nav li a')->attr('href', $curlUrl.$href);
//end loop
echo '<base href="'.$_GET['url'].'"/>';
echo $doc;
?>
在jquery中有.each()函数可以完成我需要的操作并遍历每个'a'标记。在phpquery或其他php DOM方法中是否有类似的东西来遍历文档并修改每个'a'标记?
干杯
答案 0 :(得分:1)
自从我使用phpQuery以来已经有一段时间了,但你应该只能使用foreach
foreach ($doc['a'] as $link) {
$href = pq($link)->attr('href');
// rest of code
}