Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Spider d'immagini

  1. #1

    Spider d'immagini

    Ciao a tutti, stò realizzando un piccolo spider d'immagini che scandaglia qualche sito selezionato ottenendo l'URL delle immagini stesse.

    codice:
    <?php
    
    function getImageFromPage($url){
      $myVar = file_get_contents($url);
      
      $doc = new DOMDocument;
      $doc->loadHTML($myVar);
      
      $xpath = new DOMXPath($doc);
      
      $nodo = $xpath->query('//img[@src]');
      return $nodo;
    }
    $URL = "http://www.miosito.it/miadirectory/subdirectory";
    
    $nodo = getImageFromPage($URL);
    foreach ($nodo as $nodo){
        $imgsrc = $nodo->getAttribute('src');
    	$imgalt = $nodo->getAttribute('alt');
    	$path_parts = pathinfo($imgsrc);
    	
    	echo $imgsrc;
    }
    ?>
    Quando lo lancio e se nel cosice HTML in "src" è indicato l'URL completo funziona tutto a dovere. Il problema giunge se nel codice "src" vi è una posizione parziale tipo ../immagini/miaimmagine.jpg

    In tal caso il sistema non riesce ad individuare la reale posizione dell'immagine nel web.

    Qualche soluzione????

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Con un str_replace() sostituisci .. con l'indirizzo base del sito, ad esempio www.sito.it, se ti dice bene la cartella immagini è nella root (di solito è così) ed hai il link corretto alle immagini.

  3. #3
    Originariamente inviato da Alhazred
    Con un str_replace() sostituisci .. con l'indirizzo base del sito, ad esempio www.sito.it, se ti dice bene la cartella immagini è nella root (di solito è così) ed hai il link corretto alle immagini.
    Già provato ... il problema è che ci sono delle eccezioni e in tal caso lo script sbaglia ...

    Esempio ... indicizzo la pagina http://www.sito.it/miaprimacartella/...ella/index.php

    Otterrò l'URL relativo dell'immagine : /img/immagine1.jpg

    Con il metodo sopra specificato lo script indicizzerà l'immagine in www.miosito.it/img/immagine1.jpg

    Purtroppo in tal modo sbaglierà ...

    La soluzione sarebbe prendere la stringa contenete l'URL completo della pagina PHP e con PHP eliminare ciò che viene dopo l'ultimo /

    In tal modo index.php verrebbe eliminato e la mia stringa sarebbe : http://www.sito.it/miaprimacartella/...ella/index.php

    Il problema è .... Come faccio questa operazione???? Mi ricordo di averla già fatta ma non so più in che modo ....

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Facile, usi strrpos($url, '/') che ti dice la posizione dell'ultimo slash, poi tagli la stringa con substr() dalla posizione trovata fino alla fine, così ti resta l'inizio senza index.php o chi per lui.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.