Infocurci - programmatore Php Roma
Infocurci - programmatore Php Roma
Questo sito non lascia nessun cookie sul vostro pc, consuma pochissimi kb, non profila nulla e non raccoglie dati personali. Siete i benvenuti.

Php : Come rimuovere la radice di un link da un feed?

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.

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 )