Visualizzazione risultati 1 fino 12 di 12

Discussione: estrarre immagini da url esterno

  1. #1
    Guest

    Predefinito estrarre immagini da url esterno

    ciao a tutti ho trovato questo script per estrarre le URL da un sito esterno:
    Codice PHP:
    <?php
    function FetchPage($path)
    {
    $file = fopen($path, "r");
    if (!
    $file)
    {
    exit(
    "Impossibile accedere al file!!!");
    }
    $data = '';
    while (!
    feof($file))
    {
    $data .= fgets($file, 1024);
    }
    return
    $data;
    }

    // pagina da cui estrarre le immagini
    $url = $_SERVER["HTTP_REFERER"];

    // estraggo il contenuto HTML della pagina
    $string = FetchPage($url);

    // estraggo i tag d'immagine
    preg_match_all('/<img[^>]*src=[\"|\'](.*)[\"|\']/Ui', $string, $out);

    // creo due array...
    // la prima contenente i tag delle immagini
    // la seconda contenente le URL delle immagini
    $img_tag_array = $out[0];
    $img_url_array = $out[1];

    // stampo a video il contenuto delle due array
    echo "<pre>"; print_r($img_tag_array); echo "</pre>";
    echo
    "<pre>"; print_r($img_url_array); echo "</pre>";
    ?>

    il mio problema è che me le stampa a video come Array mentre a me servirebbe di più la URL che usata sul mio sito con <img src/> visualizza l immagine in questione.....
    ho provato a modificarlo ma proprio non riesco... potete darmi qualke dritta cortesemente...
    Ultima modifica di xspacemasterx : 29-02-2012 alle ore 15.35.38

  2. #2
    Guest

    Predefinito

    Codice PHP:
    preg_match_all('/<img[^>]+>/i',$html, $result);
    Ultima modifica di biccheddu : 29-02-2012 alle ore 17.14.39

  3. #3
    Guest

    Predefinito

    ok il problema1 lho risolto con questo tag:
    Codice PHP:
    $link_file=basename($link);
    $link2 = str_replace($link_file," ",$link);

    reset($img_url_array);
    while(list(
    $key, $val) = each($img_url_array)) {
    $val2 =" $link2$val";
    $val2 = str_replace(" ","",$val2);;
    echo
    "<input type = 'radio' name ='image' value= '$val2'/> <img src='$val2' width='100px' height='100px'/>";
    ora il problema2 è che funziona solo con alcuni siti :( in altri le immagini escono vuote!!
    poi invece di usare while() che cerca tutte le immagini vorrei fare in modo che cerca solo le prime 3...

  4. #4
    Guest

    Predefinito

    Usando preg_match_all(), basta inserire il numero 3 nel quinto parametro della funzione, altrimenti valorizzare con una variabile fuori dal while(), incrementarla dentro al ciclo, fare una condizione e bloccare con break; il while se il numero è uguale oppure maggiore di 3.


  5. #5
    Guest

    Predefinito

    cioè nel quarto vorrai dire?? intendi così:
    Codice PHP:
    preg_match_all('/<img[^>]*src=[\"|\'](.*)[\"|\']/Ui', $string, $out,3);
    per le URL come mai non mi funziona con alcuni siti??
    x richiamarle ho usato l HOST principale e ho aggiunto la url dell immagine nel tag <img src/> ma a quanto pare non basta... cè x caso qualcosa che mi sfugge??

  6. #6
    Guest

    Predefinito

    La prima cosa che mi viene in mente è che son chiuse le connessioni server2server.

    Hai provato ad usare cURL o file_get_contents()?


  7. #7
    Guest

    Predefinito

    scusa bicheddu ho provato con questo tag e a primo impatto andava bene... poi ho notato che lo script non è universale x tutti i siti e volevo sapere dove sbaglio.... con questi suggerimenti dovrei rifare tutto daccapo.... non si può continuare su questo script??

  8. #8
    Guest

    Predefinito

    Tag? Intendi funzione?

    Comunque con il codice consigliato da me:
    Codice PHP:
    preg_match_all('/<img[^>]*src=[\"|\'](.*)[\"|\']/Ui', $string, PREG_PATTERN_ORDER, 3);

  9. #9
    Guest

    Predefinito

    ok va bene ma x recuperare le url in modo sicuro cosa posso fare?

  10. #10
    Guest

    Predefinito

    Ma le URL di cosa?

  11. #11
    Guest

    Predefinito

    ???? come quali URL?? Quelle che usate con <img src /> visualizzano le immagini del sito esterno sul mio!!!

  12. #12
    Guest

    Predefinito

    ok scusate il doppio post ma a me mi serve aiuto non vengo qui giusto perchè non ho nulla da fare!!!!!!!!!! allora sapendo che la funzione getimagesize() mi restituisce 7array ho modificato lo script in questo modo
    Codice PHP:
    reset($img_url_array);
    while(list(
    $key, $val) = each($img_url_array)) {
    $val2 =" $link2$val";
    $val2 = str_replace(" ","",$val2);
    $size = getimagesize($val2);
    if(
    is_array($size))
    echo
    " <input type = 'radio' name ='image' value= '$val2'/> <img src='$val2' width='100px' height='100px'/>";
    }
    ma nemmeno riesco a recuperare le URL IMMAGINI esterne da visualizzare correttamente....
    non chiedo correzioni ma un piccolissimo aiuto se è possibile...... GRAZIE in anticipo.......

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •