Я извлекаю внешнюю страницу через curl и сохраняю ее в переменной. Затем мне нужно проанализировать все теги «a» в документе и изменить его. Для этого мне нужно пропустить каждый тег 'a'. Мой текущий код:Элементы Iterate DOM с phpQuery
<?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(), который делает то, что мне нужно, и перебирает «а» тега. Есть ли что-то подобное в phpquery или других php DOM-методах для итерации документа и изменения каждого тега 'a?
Приветствия
спасибо за ответ, но это первая строка кода в силе? Я все еще новичок в php, но возможно ли иметь два оператора присваивания в одном выражении? что делают два назначения? –
Да, вы можете, но в моем ответе это была опечатка :) Я редактировал, как вы прокомментировали. Мое редактирование основано на каком-то живом коде с использованием phpQuery, я пошел проверять его, чтобы быть уверенным. – fullybaked
Так что если я правильно понял. Вытянутое внешнее содержимое сохраняется как объект или массив. Которые могут быть напрямую доступны функцией foreach. Является ли pq эквивалентным. Это в javascript? –