Ok, donc j'ai fait cette fonction qui fonctionne bien pour convertir la plupart des URLs comme pies.com ou www.cakes.com en une étiquette de lien réelle.aide avec regex - comment puis-je faire des urls non-suivre?
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;
}
Je voudrais mettre à jour cette fonction pour ajouter no-follow
balises à des liens vers mes concurrents,
Je dois donc certains mots-clés (noms de concurrents) à nofollow par exemple si mon site était sur le point de cuisson je pourrais veulent:
no-follow any sites with the phrases 'bakingbrothers', 'mrkipling', 'lyonscakes'
est-il possible de mettre en œuvre cette if(contains x){ add y}
dans mon regex?
Est-ce ce qu'on appelle un 'lookback'?
cela semble génial, mais je vais avoir du mal avec des personnages, il semble preg_replace_callback n'accepte pas le modificateur « e », il est donc maintenant capturer les 'n' forme '\ n' de nouvelles lignes? – Haroldo
Pouvez-vous donner un exemple de votre chaîne d'entrée? Difficile à construire regexp aveugle :) –
ah c'était mon erreur, j'étais double échapper les linebreaks, votre solution fonctionne de façon fantastique, et merci aussi à Marty pour son aide aussi – Haroldo