vraiment bizzare

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

vraiment bizzare

Message le Ven Juil 17, 2009 16:42

Dans ma base de données je stock des urls, qui ont l'air toutes clean, mais lorsqu'elles sont ressorties sur une page, il y a des espaces entre certaines lettres et cela rend l'url inaccessible.
J'ai tenté de copier coller une url directement de la base sur mon navigateur, pas de problème j'ai quelque chose de ce genre :
http://monsite.com/lechemin-de-lurl.html

Lorsque je fais appel à cette url sur ma page dynamique du genre "lire la suite" qui a pour cible l'url de la base, il s'avère que le lien redirige sur
http://monsite.com/le chemin-de-lurl.html

ici il ya un espace entre le et chemin qui se forme.
please help !


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6469
Inscription: 13 Juin 2005

Re: vraiment bizzare

Message le Ven Juil 17, 2009 19:16

Bonjour
Les espaces ne se mettent pas par hasard comme ça; tu dois avoir un traitement foireux des données récupérées dans ta base de données à mon avis.

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: vraiment bizzare

Message le Ven Juil 17, 2009 22:13

ça y est, trouvé, dans le code que j'ai repris il y avait une fonction du genre :
Code: Tout sélectionner
function cutLongWord($text) {
   
     $limit = 40;
     // On stocke tous les mots dans un tableau
     $tab = explode(' ', $text);
     foreach($tab as $k => $str) {
     // On coupe tous les mots > à $limit
     $tab[$k] = wordwrap($str, $limit, " ", true);
     }
     // On reconstitut la chaine de départ
     $string = implode(' ', $tab);
     return $string;
    }

J'ai augmenté la variable limit, et c'est bon, ça s'affiche normalement.
Merci pour ton intervention nickargall


MTroy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 12 Juil 2009

Re: vraiment bizzare

Message le Ven Juil 17, 2009 23:27

Content que tu ais solutionner ton problème.
Par contre je ne sais pas si tes url sont de taille variable (contenant des titres de topic...)
mais dans cette éventualité, voici un le pattern à utiliser pour supprimer les espaces
récurrents dans une chaine. (à moins que tu préfère augmenter la limite à 10000)

Code: Tout sélectionner
$url = preg_replace ("/\s+/", " ", $url);


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités