до сих пор ив удалось наскрести 2 элементов с внешнего сайта на тестовой странице: http://mt-cloud.co.uk/nhs/Объединить 2 отдельных Еогеасп петли
(Пожалуйста, поиск тест на странице просмотра результатов)
$ch = curl_init('http://www.nhs.uk/service-search/GP/m410ux/Results/4/-2.35167407989502/53.4519462585449/4/0?distance=25');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$output = curl_exec($ch);
curl_close($ch);
$document = new DOMDocument;
libxml_use_internal_errors(true);
$document->loadHTML($output);
$document->encoding = 'utf-8';
$xpath = new DOMXPath($document);
$pnames = $xpath->query("//th[@class='fctitle']");
$addresses = $xpath->query("//td[@class='fcdetails fc-first']");
у меня 2 Foreach петли:
foreach ($pnames as $pname) {
$result1 = $document->saveHTML($pname);
}
foreach ($addresses as $address) {
$result2 = $document->saveHTML($address);
}
$ result1 = имя GP Practice $ result2 = Адрес GP Practice
Как вы видите на тестовой странице, мои результаты 1 и 2 разделены. Как я их получаю, поэтому у меня есть Имя Практики и Практика?
UPDATE (@Tri)
for($i = 0; $i < count($pnames); $i++){
$name= $document->saveHTML($pnames[$i]);
$name=str_replace ('<a href="/Services/', '<a href="http://www.nhs.uk/Services/', $name);
$address = $document->saveHTML($addresses[$i]);
echo $name.'<br>'.$address;
}
только возвращает один результат, а не все
Вот мой полный код PHP:http://mt-cloud.co.uk/nhs/content/code
Изображение данных я пытаясь очиститьhttp://mt-cloud.co.uk/nhs/content/results.png
Что вы подразумеваете под словом _ $ result1 и $ result2 together_? Как именно вы хотите объединить их? И из того, что я вижу, ваши 'foreach' бесполезны, потому что вы переписываете значения в переменные $ result1 и $ result2, а в конце каждого цикла вы имеете только значение последнего элемента в этих переменных – EhsanT
Ссылка 404 на моем конце. Вы должны включить * маленький * образец входных данных в вопрос. –
@EhsanT - Когда я говорю вместе, я имею в виду, что он отображает GP Practice Name (result1), а затем на следующей строке GP Practice Address (result2), тогда цикл переходит к следующему. – itguyme