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