Salve a tutti ho un problema con gli URL... in poche parole ho un testo che contiene HTML già formattato per lo standard W3C con questa funzione:
Codice PHP:
function clean_value($val) {
if ($val == "")
{
return "";
}
$val = str_replace( " " , " " , $val );
$val = str_replace( "&" , "&am p;" , $val );//Ho scritto male amp perchè se no lo traduceva in &
$val = str_replace( "<!--" , "<!--" , $val );
$val = str_replace( "-->" , "-->" , $val );
$val = preg_replace( "/<script/i" , "<script" , $val );
$val = str_replace( ">" , ">" , $val );
$val = str_replace( "<" , "<" , $val );
$val = str_replace( "\"" , """ , $val );
$val = preg_replace( "/\|/" , "|" , $val );
//$val = preg_replace( "/\n/" , "
" , $val ); // Convert literal newlines
$val = preg_replace( "/\\\$/" , "$" , $val );
$val = preg_replace( "/\r/" , "" , $val ); // Remove literal carriage returns
$val = str_replace( "!" , "!" , $val );
$val = str_replace( "'" , "'" , $val ); // IMPORTANT: It helps to increase sql query safety.
$val = stripslashes($val); // Swop PHP added backslashes
$val = preg_replace( "/\\\/" , "\" , $val ); // Swop user inputted backslashes
return $val;
}
Il problema è che non trasforma le & degli url in & (Non capisco per quale arcana ragione) ora non potendo fare altro che usare str_replace direttamente su tutto il testo il risultato è che sballo tutto il risultato della funzione precedente (es. & #092; -> &#092
e per questo ho pensato di creare un piccolo algoritmo che quando trova il codice <a href=" traduce tutto quello che trovare all'interno degli apici solo che non ho idea da dove iniziare per farlo... mi appello al vostro aiuto