• User

    Estrazione URL da variabile

    ciao a tutti, io ho una variabile di tipo stringa che contiene il testo di una pagina html, e vorrei estrarre tutti gli url validi presenti in quella pagina utilizzando uno script in php, magari mettendoli in un array...mi sembra di aver capito che si potrebbe usare la funzione preg_match_all ma non ho una grande dimestichezza con le espressioni regolari. Anche se si tratta di una pagina html vorrei estrarre gli url indipendentemente dal tag href, semplicemente estrapolando tutte le stringhe che iniziano per "http://" e che terminano con ".html" o ".htm" o altre estensioni. qualcuno mi sa aiutare? grazie!


  • Moderatore

    Ciao 🙂
    ^(http://)([a-zA-Z0-9_.-])(.html|.htm)$

    dovrebbe fare ciò che ti serve.


  • User

    uhm ho provato ad inserire l'espressione regolare ma mi da questo errore:

    Warning: preg_match_all(): No ending delimiter '^' found on line 17

    questo è il mio script, la linea 17 è quella della preg_match_all, lo script termina ma non trova nessun url e l'array è vuoto

    $mystring="esempio di stringa con url http://www.miosito.it/a.html http://tuosito.com/index.php";
    $rex = '^(http://)([a-zA-Z0-9_.-])(.html|.htm)$';
    preg_match_all($rex,$mystring,$mth); //inserisco tutte le occorrenze nell'array $mth
    echo '<pre>';
    print_r($mth[0]); //stampo l'array

    forse il forum ha storpiato l'espressione non visualizzando qualche carattere?
    qualcuno mi saprebbe dare una mano? grazie!


  • Moderatore

    Non è il forum... colpa mia 😛

    prova a mettere $rex = "/(http://[a-zA-Z0-9-_./]*[.html|.htm|.php])/";
    sperando sia cià che ti serva 😛

    :ciauz: