A volte i feed vengono generati con delle url basate su due indirizzi: quella del sito principale e quella del sito di destinazione. Questo consente al sito principale di monitorare i click in uscita. Se abbiamo bisogno di estrarre solo l'url di destinazione, possiamo risolvere con una riga di codice php.
Nel nostro lavoro può capitare di dover elaborare un indirizzo web proveniente da una stringa di terze parti (ad esempio un feed di dati). A volte però il feed può contenere gli indirizzi come parametro di una url interna al suo server, ad esempio
http://www.feed.it/*http://www.miosito.com/pagina.php
In questo caso, possiamo estrarre l'indirizzo che ci interessa (miosito.com con il resto della pagina) utilizzando una sola riga di codice php, basata sulle espressioni regolari:
$url = 'http://www.feed.it/*http://www.miosito.com/pagina.php';
$url_da_mostrare = substr(preg_replace('#(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+\#]*[\w\-\@?^=%&/~\+\#])?#','',$url,1),1);
echo "url originale: $url<br /> url valida: $url_da_mostrare <br />";
L'url di esempio contiene un carattere intermedio (*) come separatore, soluzione utilizzata da diversi feed; tuttavia è possibile adattare facilmente la soluzione per altre situazioni.
E' importante notare il parametro "1" della funzione preg_replace, che consente di limitare il replace alla prima occorrenza trovata della url (altrimenti verrebbe sostituita tutta la stringa )