Interdire les espaces et les remplacer .

antx -  
 antx -
Bonjour,

Pouvez vous me dire comment dois-je faire pour interdire les espaces dans une url et les remplacer par un point.

Merci d'avance
A voir également:

6 réponses

Thom@s Messages postés 3416 Statut Modérateur 678
 
Salut !

Désolé, mais je ne comprends plus du tout ce que tu veux faire.
Tu pourrais réexpliquer le problème, stp ? :)

J'ai lu :
j'aimerai pouvoir remplacer les espaces par un point.
pour ne pas avoir %20

Je t'ai donc donné un code qui remplace les %20 par des points dans l'URL (en fait, qui redirige vers l'adresse de la page courante avec les %20 remplacés).

Est-ce que ça convient, où est-ce que je n'ai pas compris le problème ?

Si tu veux rewriter l'URL en remplaçant les %20 par des points, ça me paraît difficile si on ne connaît pas le nombre exact de %20 à remplacer dans l'URL. Est-ce que ce nombre est fixe ou variable ?

A+
1
Reivax962 Messages postés 3742 Statut Membre 1 011
 
Bonjour,

Pourrais-tu être un peu plus explicite s'il te plait ?
Je ne suis pas sûr d'avoir bien compris ce que tu veux faire...

Si ton but est de modifier l'adresse qu'a rentré un utilisateur dans son navigateur, je crains que tu ne puisses pas le faire...

Enfin, explique nous exactement ce que tu veux faire, à quel moment, à quel endroit, et dans quel but. Ca nous aidera a répondre.

Xavier
0
antx
 
J'utilise la fonction url rewriting
j'utilise la petite description de chaque produit dans l'url.

Donc j'aimerai pouvoir remplacer les espaces par un point.
pour ne pas avoir %20.

Merci de votre aide
0
Thom@s Messages postés 3416 Statut Modérateur 678
 
Salut !

Avec l'URL rewriting, je ne vois pas trop comment faire si on ne connait pas le nombre exact d'espaces dans une URL (et ce nombre varie, je suppose).

Par contre, tu peux faire un bricolage en PHP (à placer sur la page de ton script, avant tout code HTML) :
<?php
$url_brut=explode('%20', $_SERVER['REQUEST_URI']);
foreach($url_brut as $fragment) {
    $url_final.=$fragment.".";
}
$url_final=substr($url_final, 0, -1); // pour enlever le point final
header('Location: '.$url_final);
?>

A+ :)
0
antx
 
Merci pour votre coup de main, mais... :)

Lorsque la page charge cela prend bcp de temps et elle n'arrive pas.

Donc j'utilise l'url rewriting et des pseudos frames.

Donc je dois placer le code php sur ma page principale.


Merci de votre aide
0
Thom@s Messages postés 3416 Statut Modérateur 678 > antx
 
Re,

Effectivement, ça a dû faire une boucle infinie (la page s'appelle elle-même indéfiniment).

Essaie peut-être comme ça :
<?php
if (substr_count($_SERVER['REQUEST_URI'], "%20")>0) { 
     $url_brut=explode('%20', $_SERVER['REQUEST_URI']);
     foreach($url_brut as $fragment) {
         $url_final.=$fragment.".";
     }
     $url_final=substr($url_final, 0, -1); // pour enlever le point final
     header('Location: '.$url_final);
}
?>

A+
0
antx > antx
 
merci ton code va bien, mais....

le code remplace bien les espaces par un point


Voici mon fichier .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.cache -f
RewriteRule ([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)\.html$ /$1./$2./$3./$4.html.cache [L]
RewriteRule ([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)\.html$ /index.php?cat=$1&desc1=$2&rubid=$3&news=$4 [L]

Comment dois-je faire maintenant pour la variable $2 reconnaissent bien la phrase.

Parce que normalement la variable doit être soit un chiffre soit un mot et pas plusieurs mots avec un point.


En espérant que vous conprennez mon problème.



Encore merci d'avance.
0
antx
 
en gros, j'aimerai maintenant de pouvoir faire le contraire du code.

Donc supprimer les . par un espace normal, pour que ma bdd reconnaisse bien cet id.

Pour info, je désire juste avoir une url plus propre pour l'indexation des moteurs de recherche.

Encore merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
antx
 
Auriez vous une idée, pour résoudre mon petit soucis? ;)

Merci
0
antx
 
j'ai vraiment besoin de votre coup de main, ;) merci
0