• User

    estrarre link da testo

    ciao!
    ho questo script per estrarre un link da un testo.
    l'ho modificato per estrarre il link di un immagine, ma vorrei implementarlo per farlo funzionare con diversi formati (per ora bastano jpg e png)
    il dominio dei file è sempre lo stesso
    per ora è così.

    //Definizione delimitatori
    $del_min = "htt...ww.nomesito.com/";
    $del_max = ".jpg";

    //Calcolo posizione dei delimitatori
    $pos_del_min = strpos($content, $del_min);
    $pos_del_max = strpos($content, $del_max);

    //Calcolo lunghezza dei caratteri che formano il link
    $pos_del_max = $pos_del_max - $pos_del_min + 4;

    //Estrazione del link
    $imgurl = substr($content, $pos_del_min, $pos_del_max);

    echo $imgurl;

    ma quando incontra un .png continua la ricerca, restituendomi stringhe errate.
    come potrei fare?
    deve trovare o .jpg o .png come delimitatore finale della stringa.

    consigli?
    grazie


  • User Attivo

    Ciao gphp,

    ti consiglio di dare un'occhiata a queste due funzioni:

    • preg_match
    • preg_replace

    Sono due funzioni che lavorano con le espressioni regolari, sono molto potenti e te le consiglio al posto della substr per fare questi lavori.

    Nello script che hai inserito le stringhe restituite sono errate perché gli chiedi di fermarsi quando incontra ".jpg", perciò ".png" viene ignorato.

    Ciao,
    Luca Bartoli


  • Super User

    Puoi anche utilizzare http://php.net/manual/en/domdocument.loadhtml.php
    Con il loadHTML ottieni un oggetto DOM, il quale in seguito è leggibile e manipolabile a tuo piacimento


  • User Newbie

    Ti riporto uno snippet di un mio progetto, puoi usarlo se i tuoi link sono dentro dei tag IMG

    
    $doc = new DOMDocument();
    $doc->loadHTML(<il tuo testo>);
    $xml = simplexml_import_dom($doc);
    if ($xml) {
        $images = $xml->xpath('//img');
        foreach ($images as $img) {
            ...
        }
    }
    
    

    da queste stringhe devi solo estrarre l'attriibuto src
    :ciauz: