Ok, quindi ho creato questa funzione che funziona bene per convertire la maggior parte degli URL come pies.com o www.cakes.com in un tag di collegamento reale.aiuto con regex - come posso fare alcuni URL no-follow?
function render_hyperlinks($str){
$regex = '/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org(\.uk)?|tv|biz|me)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie';
$str = preg_replace($regex,"'<a href=\"http://www.'.'$3'.'\" target=\"_blank\">'.strtolower('$3').'</a>'", $str);
return $str;
}
Vorrei aggiornare questa funzione per aggiungere no-follow
tag ai link ai miei concorrenti,
così avrei alcune parole chiave (nome concorrente) per nofollow per esempio se il mio sito era di circa cottura potrei vogliono:
no-follow any sites with the phrases 'bakingbrothers', 'mrkipling', 'lyonscakes'
è possibile attuare questo if(contains x){ add y}
nel mio regex?
è ciò che viene chiamato "lookback"?
questo sembra ottima, tuttavia sto avendo problemi con i personaggi, sembra preg_replace_callback non accetta la 'e' modificatore, così ora sta catturando la 'n' form '\ n' nuove linee? – Haroldo
Puoi fornire un esempio della stringa di input? Difficile costruire regexp cieca :) –
ah è stato un mio errore, stavo fuggendo doppiamente dalle interruzioni di riga, la tua soluzione funziona in modo fantastico, e grazie anche a Marty per il suo aiuto anche – Haroldo