Io le espressioni regolari non le so usare...quindi ti do una mia soluzione "normale"...in caso nessun altro ti risponda hai una scappatoia per lo meno ^^'
Codice PHP:
function find_a_href($str)
{
$str = stristr($str, "<a");
$oc = strpos($str, ">");
$str_part = substr($str, 0, $oc+1);
$rest = substr($str, $oc+1);
$str_part = stristr($str_part, "href");
if(strpos($str_part, "'"))
{
$str_part = stristr($str_part, "'");
$str_part = substr($str_part, 1);
$oc = strpos($str_part, "'");
$str_part = substr($str_part, 0, $oc);
}
else if(strpos($str_part, "\""))
{
$str_part = stristr($str_part, "\"");
$str_part = substr($str_part, 1);
$oc = strpos($str_part, "\"");
$str_part = substr($str_part, 0, $oc);
}
$str_part = preg_replace("/forum/",'sito',$str_part);
if(stristr($rest, "[url='http://miosito.it/forum']bla bla[/url] testo ancora di prova [url='http://tuosito.it/forum']bla bla 2[/url]";
print_r(explode("|", find_a_href($sorgente)));
risultato:
La funzione ti restituisce un array con dentro tutte le occorrenze degli HREF della stringa e sostituisce "forum" con "sito".
Spero qualcun altro ti risponda usando le regex cosi cerco di impararci qualcosa