Прежде всего, всем вам сезонных поздравлений и счастливого Нового года! Отлично провести время !!
Следующий код представляет собой решение, которое возвращает метки и значения в
отформатированный массив готов для ввода в MySQL. Очень приятно; -)
<code><?php
$dom = new DOMDocument();
@$dom->loadHTMLFile('http://schulen.bildung-rp.de/gehezu/startseite/einzelanzeige.html?tx_wfqbe_pi1%5buid%5d=60119');
$divElement = $dom->getElementById('wfqbeResults');
$innerHTML= '';
$children = $divElement->childNodes;
foreach ($children as $child) {
$innerHTML = $child->ownerDocument->saveXML( $child );
$doc = new DOMDocument();
$doc->loadHTML($innerHTML);
//$divElementNew = $dom->getElementsByTagName('td');
$divElementNew = $dom->getElementsByTagname('td');
/*** the array to return ***/
$out = array();
foreach ($divElementNew as $item)
{
/*** add node value to the out array ***/
$out[] = $item->nodeValue;
}
echo '<pre>';
print_r($out);
echo '
';
}
?>
Этот бит кода работает очень хорошо, и он выполняет операцию, которую я собираюсь вызвать несколько раз. Поэтому имеет смысл обернуть его в функцию. Мы можем назвать его как угодно. Давайте просто назовем его «мультизагрузка». Я пытался сделать это с помощью следующего кода - но он не запускается ... Я до сих пор не уверен, где поставить UID - внутри или снаружи функции ...
<code> <?php
function multiload ($uid) {
/*...*/
// $uid = '60119';
$dom = new DOMDocument();
$dom->loadHTMLFile('basic-url ' . $uid);
}
multiload ('60089');
multiload ('60152');
multiload ('60242');
/*...*/
$divElement = $dom->getElementById('wfqbeResults');
$innerHTML= '';
$children = $divElement->childNodes;
foreach ($children as $child) {
$innerHTML = $child->ownerDocument->saveXML( $child );
$doc = new DOMDocument();
$doc->loadHTML($innerHTML);
//$divElementNew = $dom->getElementsByTagName('td');
$divElementNew = $dom->getElementsByTagname('td');
/*** the array to return ***/
$out = array();
foreach ($divElementNew as $item)
{
/*** add node value to the out array ***/
$out[] = $item->nodeValue;
}
echo '<pre>';
print_r($out);
echo '
';
}?>
Где поставить следующие строки
multicall('60089');
multicall('60152');
multicall('60242');
/*...*/
Это все еще повторяется, поэтому мы можем поместить числа в массив - не можем ли мы!
Затем мы можем перебрать массив.
$numbers = array ('60089', '60152', '60242' /*...*/);
foreach ($numbers as $number) {
doStuff($number);
}
Но вопрос - как и где поставить петлю !?
Кто-нибудь может дать мне отправную точку ...
Кстати - если мне нужно быть более наглядным, я пытаюсь объяснить больше - просто дайте мне знать ...
это не проблема, чтобы объяснить больше
привет
Ноль
ОБНОВЛЕНИЕ: большое спасибо, теперь я сделал большой шаг
<code><?php
function multiload ($uid) {
/*...*/
// $uid = '60119';
$dom = new DOMDocument();
$dom->loadHTMLFile('basic-url ' . $uid);
}
multiload ('60089');
multiload ('60152');
multiload ('60242');
/*...*/
$divElement = $dom->getElementById('wfqbeResults');
$innerHTML= '';
$children = $divElement->childNodes;
foreach ($children as $child) {
$innerHTML = $child->ownerDocument->saveXML( $child );
$doc = new DOMDocument();
$doc->loadHTML($innerHTML);
//$divElementNew = $dom->getElementsByTagName('td');
$divElementNew = $dom->getElementsByTagname('td');
/*** the array to return ***/
$out = array();
foreach ($divElementNew as $item)
{
/*** add node value to the out array ***/
$out[] = $item->nodeValue;
}
echo '<pre>';
print_r($out);
echo '
';
}
$ numbers = array ('60089', '60152', '60242' /*...*/);
foreach ($ числа как $ число) {
Multiload ($ число);
}
?>
я добавляю код в конец .... Теперь я многому научился. Кстати: я очень рад быть здесь !!!
Привет ноль
Теперь я попробую ...