Aller au contenu

Soucis de rewrite "'"


baycris

Sujets conseillés

Un peu apres avoir poster un petit malin tente des requetes sql sur le site donc pour ne plus donner envie je retire mon poste.

Pas cool.

Cris.

Modifié par baycris
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

j'utilise cette fonction toute "simple" pour ce genre de tâche...

 /**
 * Convert a string to something that can be used in a URL
 *
 * @date   2005-04-02
 * @param  string $str String to make URL friendly
 * @return string  URL friendly text
 */
 function str2url($str) {
   $str = strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉËèéêëÌÍÎÏìíîïÙÚÛÜùúûüŸÝÿýÑñ",
"AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuYYyyNn");
   $str = str_replace('Æ','AE',$str);
   $str = str_replace('æ','ae',$str);
   $str = str_replace('Œ','OE',$str);
   $str = str_replace('œ','oe',$str);
   $str = preg_replace('/[^a-z0-9_\s\'\:\/\[\]-]/','',strtolower($str));
   $str = preg_replace('/[\s\'\:\/\[\]-]+/',' ',trim($str));
   $res = strtolower(str_replace(' ','-',$str));
   return $res;
 }

Elle est utilisée par le moteur de blog DotClear et règle ce problème d'apostrophe ;)

Pour la deuxième question... je ne comprends pas bien ce que tu demandes... donc soit tu reformules pour moi..soit tu attends que quelqu'un d'autre comprenne ;D

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Merci à toi

eh non mal'heureusement cela ne fonctionne pas chez moi...

Domage ca raccourci un peut le code...

Enfin que tu ne comprenne pas la deuxieme explique peut etre cela ^^

Car ce n'est qu'une question en fait.

La function sert a modifier l'url mais mon probleme je pense ce situe a l'appelle de l'url de son ecriture "initiale".

Comment sont appellées tes url par exemple ?

La différence entre les des code d'url que je prensente c'est l'addition de \

Cris

Modifié par baycris
Lien vers le commentaire
Partager sur d’autres sites

On peu procèder comme ceci (si je n'utilise pas un moteur de template) :

<a href="http://www.domain.com/recette-<?php echo $lid."-".str2url($ltitle); ?>.html" title="<?php echo $title; ?>"><b><?php echo $ltitle; ?></b></a>

C'est pas très propre...mais c'est une troisième manière de faire, tu peux tenter pour voir si cela résoud ton problème, mais je doute car en définitive la sortie sera la même ;)

Tant au point de vue HTML que PHP les single quote/double quote ne modifient pas la sortie mais requière l'échapement (en PHP) et/ou l'altérnance d'utilisation (quand les données contiennent un apostrophe on utilise les guillemets, et inversément...).

Sinon je ne vois pas... tes données dans la base de données sont-elle échapée ? (as-tu utilisé addslashes, mysql_escape_string, ... lors de l'ajout de données) ... en bref tu peux essayer d'afficher la chaîne de caractères récupérée sans la passer dans la fonction qui la transforme pour être comptatible avec l'URL et essayer de voir d'où le problème provient...

**EDIT** Adresse remplacée..Oui...il y a toujours des "malins"

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...