Auteur Topic: [PHP] Script gaat niet goed verder  (gelezen 2377 keer)

0 leden en 1 gast bekijken dit topic.

xvilo

  • Global Moderator
  • Verslaafd DigitalPlace Lid
  • *****
  • Berichten: 2675
  • Karma: -44
    • Bekijk profiel
    • http://www.xvilo.com
[PHP] Script gaat niet goed verder
« Gepost op: januari 28, 2015, 11:03:30 pm »
  • [+1]0
  • [-1]0
  • Hallo Allemaal,

    Ik ben bezig met een heeel simpel scriptje die een image galery download, nu heb ik alleen een probleem... deze image gallery laat zeg maar 9 foto's per pagina zien, en dan verdeeld over 12 pagina's... nu download hij de foto's van de eerste pagina correct, maar zodra hij switched naar de URL van pagina 2 doet ie niks en gaat ie naar 3 en weer niks en naar 4 etc....

    maar als ik zeg dat hij moet beginnen bij pagina 2 download ie de foto's wel maar dan bij pagina 3 het zelfde verhaal.... wat doe ik verkeerd???

    Mijn code:
    Code: php [Selecteer]

    <?php
        $base 
    = 'http://www.XXXXX.com/gallery2/';
     // integer starts at 0 before counting
        $i = 0; 
        $dir 
    = 'img/';
        if ($handle = opendir($dir)) {
            while (($file = readdir($handle)) !== false){
                if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
                    $countsec
    ++;
            }
        }
        
    function getpage
    ($URL){
        $username='xxxxxx';
    $password='xxxxxx';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$URL);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
        $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
        $source=curl_exec ($ch);
        curl_close ($ch);
        return $source;
    }


    $i = 1; //bij welke pagina hij moet beginnen
    while ($i <= 12):
        echo "  DOING: $i".PHP_EOL;;
     if($i == 1){
         $append = "";
     }else{
         $append = "&g2_page=$i";
     }
     
     $url 
    = $base.'main.php?g2_itemId=27102'.$append;
     //die($url);
    preg_match_all ('/<a [^>]*href="?([^">]+)"?>/', getpage($url), $matches);
        
    $urls 
    = array ();
    $counts = array( 10, 11, 12, 13, 14, 15, 16, 17, 18);

    foreach ($matches[1] as $result)
    {
        $count++;
        if(in_array($count, $counts)) {
            $urls[] = $result;
        }
    }
    $matches = "";
    foreach ($urls as $items){
        preg_match_all ('/<img[^>]+srcs*=s*["']?([^"' ]+)[^>]*>/', getpage($base.$items), $matches);
        echo "Getting image".PHP_EOL;
        file_put_contents("img/".$countsec.'.jpg', getpage($base.html_entity_decode($matches[1][1])));
        echo "Done".PHP_EOL;
        //echo html_entity_decode($matches[1][1]).PHP_EOL;
        $countsec++;
    }
    $i++;
    endwhile;
    ?>


    Mijn output van het scriptje is dan:
    [info:1nc78e32]DOING: 1
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
    Getting image
    Done
      DOING: 2
      DOING: 3
      DOING: 4
      DOING: 5
      DOING: 6
      DOING: 7
      DOING: 8
      DOING: 9
      DOING: 10
      DOING: 11
      DOING: 12[/info:1nc78e32]

    Alvast bedankt,

    //xvilo
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »


    gertmenkel

    • Actief DigitalPlace Lid
    • **
    • Berichten: 1125
    • Karma: 131
      • Bekijk profiel
    Re: [PHP] Script gaat niet goed verder
    « Reactie #1 Gepost op: januari 29, 2015, 11:04:56 pm »
  • [+1]0
  • [-1]0
  • Het enige probleem dat ik kan bedenken is het gedeelte
    	 if($i == 1){
    $append = "";
    }else{
    $append = "&g2_page=$i";
    }
    Hier wordt verschil gemaakt tussen [icode:73z2ivsb]$i=1[/icode:73z2ivsb] en alle andere gevallen.

    Als je handmatig de gegenereerde URLs bezoekt, doet hij het dan wel?
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »
    ThePirateBay AFK
    Bekijk de vrije en gratis documentaire!

    xvilo

    • Global Moderator
    • Verslaafd DigitalPlace Lid
    • *****
    • Berichten: 2675
    • Karma: -44
      • Bekijk profiel
      • http://www.xvilo.com
    Re: [PHP] Script gaat niet goed verder
    « Reactie #2 Gepost op: januari 29, 2015, 11:42:24 pm »
  • [+1]0
  • [-1]0
  • Citaat van: "gertmenkel"
    Het enige probleem dat ik kan bedenken is het gedeelte
    	 if($i == 1){
    $append = "";
    }else{
    $append = "&g2_page=$i";
    }
    Hier wordt verschil gemaakt tussen [icode:34948cq8]$i=1[/icode:34948cq8] en alle andere gevallen.

    Als je handmatig de gegenereerde URLs bezoekt, doet hij het dan wel?

    Nee, daar zit het hem niet in, de handmatige URL's zijn correct en als ik hem laat beginnen bij pagina 3 via
    $i = 3; //bij welke pagina hij moet beginnen
    Dan download hij de derde pagina correct, maar gaat hij gewoon weer fout verder bij 4,5,6 enz.

    Ik zag wel dat [icode:34948cq8]$matches[/icode:34948cq8] een lege array geeft na de eerste keer, maar hij haalt wel de juiste pagina content op... dan heb ik het over dit stukje:
     $url = $base.'main.php?g2_itemId=27102'.$append;
     //die($url);
    preg_match_all ('/<a [^>]*href="?([^">]+)"?>/', getpage($url), $matches);
       
    $urls = array ();
    $counts = array( 10, 11, 12, 13, 14, 15, 16, 17, 18);
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »


    Robin

    • Administrator
    • DigitalPlace Guru
    • *****
    • Berichten: 3158
    • Karma: 145
      • Bekijk profiel
      • http://www.robinj.be/
    Re: [PHP] Script gaat niet goed verder
    « Reactie #3 Gepost op: januari 30, 2015, 09:23:14 am »
  • [+1]0
  • [-1]0
  • Ja, met een half script kunnen wij natuurlijk ook niet veel doen :P Als het script dat je hier post gewoon het volledige is (wat lastiger door de gebruikersnaam en wachtwoord natuurlijk) kunnen we zelf ook wat testen en heb je waarschijnlijk direct een oplossing. Op deze manier is het maar wat gokwerk :)
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »
    >><<

    gertmenkel

    • Actief DigitalPlace Lid
    • **
    • Berichten: 1125
    • Karma: 131
      • Bekijk profiel
    Re: [PHP] Script gaat niet goed verder
    « Reactie #4 Gepost op: februari 02, 2015, 02:35:27 pm »
  • [+1]0
  • [-1]0
  • Misschien kun je de output van de HTML die je via de browser binnenhaalt posten? Een pagina of 3-4 zou genoeg moeten zijn, dan kunnen wij misschien wat meer...
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »
    ThePirateBay AFK
    Bekijk de vrije en gratis documentaire!

    Auriorx

    • DigitalPlace Lid
    • *
    • Berichten: 8
    • Karma: 2
      • Bekijk profiel
    Re: [PHP] Script gaat niet goed verder
    « Reactie #5 Gepost op: maart 20, 2015, 11:16:51 am »
  • [+1]0
  • [-1]0
  • De reden waarom het misgaat is volgens mij omdat je [icode:2va8gr7o]$i++[/icode:2va8gr7o] te laat aanroept.

    Zet hem anders hier neer:
    else{
             $append = "&g2_page=$i";
         }
    $i++;
    Ik moet wel bekennen dat ik er een flinke tijd uit ben geweest met PHP. Waarom gebruik je eigenlijk een dubbele punt en een 'endwhile'? Mag haakje openen en sluiten niet meer?

    Ik hoop dat dit je helpt.
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »

    xvilo

    • Global Moderator
    • Verslaafd DigitalPlace Lid
    • *****
    • Berichten: 2675
    • Karma: -44
      • Bekijk profiel
      • http://www.xvilo.com
    Re: [PHP] Script gaat niet goed verder
    « Reactie #6 Gepost op: april 05, 2015, 04:42:11 pm »
  • [+1]0
  • [-1]0
  • Citaat van: "Auriorx"
    De reden waarom het misgaat is volgens mij omdat je [icode:rtjcw2x6]$i++[/icode:rtjcw2x6] te laat aanroept.

    Zet hem anders hier neer:
    else{
             $append = "&g2_page=$i";
         }
    $i++;
    Ik moet wel bekennen dat ik er een flinke tijd uit ben geweest met PHP. Waarom gebruik je eigenlijk een dubbele punt en een 'endwhile'? Mag haakje openen en sluiten niet meer?

    Ik hoop dat dit je helpt.

    Mhh goede, ga ik eens proberen, tja, waarom? Omdat ik soms nog wat onhandig ben wss hahaha
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »