Forum dédié au moteur de recherche et aux techniques d'optimisation par #taggle
Vous n'�tes pas identifi�.
Bonjour à tous,
Dans Dotclear mais je pense que cela n'a pas d'importance d'ailleurs ... J'ai ajouté un bouton qui permet d'encadrer un ou plusieurs mots de la balise <ref>mot</ref>
Oui vous ne connaissez pas cette balise
Enfin pour l'instant elle ne sert à rien en l'état mais je voudrais que cela se transforme en
<a href="mot.html">mot</a>
Je pense qu'l faut utiliser les expressions régulières mais j'ai séché le cours
Enfin pour terminer, vous voyez ce à quoi je veux arriver, si vous avez une autre solution je suis aussi preneur !
Merci Chris
Hors ligne
Je dirais que c'est quelquechose comme ça :
$text = preg_replace('#<ref>(.*?)</ref>#is','<a href="\1.html">\1</a>',$text);
Hors ligne
Merci beaucoup, je vais essayer de me dépatouiller avec ça et voir ou je pourrais mettre ce truc dans Dotclear
Hors ligne
Grâce à tes conseils, j'ai réussi à l'insérer dans DC ce qui est extrêùent Cool DONC merci beaucoup
Par contre est il possible de différencier \1 et \1 ?
Exemple, celui de l'URL, je voudrais lui enlever les espaces et les remplacer par des + et le mettre en minuscule !
Hors ligne
mouais ca doit être possible avec un preg_replace_cb, mais la je file
Hors ligne
preg_replace_cb
C'est pas une fonctin native de php ça ? J'ai rien trouvé à son sujet ?
Hors ligne
$text = preg_replace('#<ref>(.*?)</ref>#ise','<a href="'.urlencode('\\1').'>\\1</a>',$text);
ça devrait marcher
preg_replace_cb() c'est le diminutif de preg_replace_callback()
Hors ligne
ça marche pas chez moi Phobos, merci quand même
Déjà que j'ai du mal à connaître un vingtaine de fonction, si elles ont des dimunitifs c'est pas gagné
Du côté de preg_replace_callback() j'ai regardé mais pas persuadé car j'ai l'impression que ça va influer sur mes deux /1 alors que je veux juste une URL convenable
Hors ligne
function build_ref($ref) { return '<a href="'.urlencode(strtolower($ref)).'">'.$ref.'</a>'; } $text = preg_replace('#<ref>(.*?)</ref>#ise',"build_ref('\\1')",$text);
là c'est un peu plus bourrin mais ça marche bien, tu fais ce que tu veux pour transformer avec ta fonction build_ref
Derni�re modification par Phobos (24-02-2007 12:14:32)
Hors ligne
Merci beaucoup
Voilà le code que j'ai obtenu si cela peut un jour servir à quelqu'un par la suite
function sans_accent($chaine) { $accent ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ"; $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby"; return strtr(trim($chaine),$accent,$noaccent); } function build_ref($ref) { return '<a href="'.urlencode(strtolower(sans_accent($ref))).'.html" class="ref"">'.$ref.'</a>'; } function dcPostContent($part=0) { global $news; if ($part > 0) { echo $news->blog->getPart($news->f('post_content'),$part); } else { echo preg_replace('#<ref>(.*?)</ref>#ise',"build_ref('\\1')",$news->getContent()); } }
Hors ligne