Bir fonksiyonunun tekrar kullanımı: bu nasıl gerçekleştirmek için - bir dizi

0 Cevap php

Tüm-çok sezon selam ve hepinize mutlu bir yeni yıl ilk! Büyük bir zaman var!

The following code is a solution that returns the labels and values in a formatted array ready for input to mysql. Very nice;-)

<?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 '</pre>';

} 

?>

Kod bu biraz çok iyi çalışıyor ve ben birden çok kez çağrıda niyetinde bir işlem gerçekleştirir. Bu nedenle bir fonksiyon içine mantıklı. Biz bize sadece "Multiload" olarak adlandırın-edelim istersen adlandırabilirsiniz. Ben hala uid koymak nerede emin değilim ... ama bu çalışmıyor - - Ben Aşağıdaki kod ile bunu yapmak için uğraştı içinde veya fonksiyon dışında ...

    <?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 '</pre>';

}?>

Nerede Aşağıdaki satırları koymak için

multicall('60089');
multicall('60152');
multicall('60242');
/*...*/

This is still repetitive, so we can put the numbers in an array - can ´t we! Then we can loop through the array.

$numbers = array ('60089', '60152', '60242' /*...*/);
foreach ($numbers as $number) {
    doStuff($number);
}

Ama soru - nasıl ve nerede döngü koymak!?

Herkes bana bir başlangıç ​​noktası verebilir ...

BTW - if i have to be more descriptive i am trying to explain more - just let me know... it is no problem to explain more

greetings Zero

UPDATE: thaks to the great help i now have made a big step

<?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 '</pre>';

}

$numbers = array ('60089', '60152', '60242' /*...*/);
foreach ($numbers as $number) {
    multiload($number);
}

?>

i add the code a the end.... Now i have learned alot. By the way: I am very happy to be here!!! Greetings zero Now i try it out...

0 Cevap