Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
770 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  préparer des url pour rewriting?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

préparer des url pour rewriting?

n°1933356
AGA
La boîte à Bokeh!
Posté le 19-10-2009 à 17:20:44  profilanswer
 

Salut,
 
Mon .htaccess est pret :
RewriteRule ^fiche-[\.a-z]*-([0-9]+).html   fiche.php?id=$1 [L]
 
Mais comment transformer mes liens fiche.php?id=1 dans l'application php?
 
Je ne cherche pas du tout fait mais seulement une piste.
 
Merci de votre aide.


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
mood
Publicité
Posté le 19-10-2009 à 17:20:44  profilanswer
 

n°1933360
Tirkyth
Posté le 19-10-2009 à 17:26:42  profilanswer
 

Le rewriting via htaccess ne fonctionne que dans un sens. A savoir que d'après le htaccess que tu écris, si ton serveur web reçoit une requête pour la page fiche-cuisine-1.html, il va en fait demander à ton application la page fiche.php?id=1
 
Ensuite, c'est à toi de faire en sorte d'afficher directement des liens propres.
Au lieu de faire

Code :
  1. <a href="fiche.php?id=<?php echo $ficheId; ?>">Fiche cuisine</a>


Tu fais directement :

Code :
  1. <a href="fiche-<?php echo $ficheLabel; ?>-<?php echo $ficheId; ?>.html">Fiche cuisine</a>


---------------
Mon Feedback !
n°1933405
AGA
La boîte à Bokeh!
Posté le 19-10-2009 à 19:46:05  profilanswer
 

Salut,
 
je me suis mal exprimé.
 
Je cherche à faire un preg_replace
pour transformer une URL du type fiche.php?id=1
 
En gros l'inverse de ce qui est fait dans le .htaccess.
 
Merci :)


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
n°1933554
AGA
La boîte à Bokeh!
Posté le 20-10-2009 à 09:39:00  profilanswer
 

Salut,
j'ai deux ereg_replace déprecié.
J'essaye de lire la doc php pour transformer ça en preg_replace, mais je n'y arrive pas!
qq'un à une doc compréhensible?
 
Merci.
 
ereg_replace("[^a-zA-Z0-9]", ".", $text);            
ereg_replace("-$", "", $text));
 


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
n°1933632
Tirkyth
Posté le 20-10-2009 à 12:48:10  profilanswer
 

http://perldoc.perl.org/perlre.html
 
Sinon, je veux bien que tu indiques le contenu de $text, tes regexp qui fonctionnent (en ereg_replace) ainsi que tes regexp qui ne fonctionnent pas (preg_replace).
Ou décrire en quelques phrases ce que tu veux qu'elle fasse :
Remplacer tout les caractères qui ne sont pas des lettres ou chiffres par des '.' ? Et supprimer un tiret en fin de chaine ?
Parce que si c'est ça je pense que tes regexp fonctionnent :

Code :
  1. $text = preg_replace("/[^a-zA-Z0-9]/", ".", $text);            
  2. $text = preg_replace("/-$/", "", $text));


Ca fait pas ce que tu veux ? (J'ai pas du tout testé hein ^^)


Message édité par Tirkyth le 20-10-2009 à 12:54:14

---------------
Mon Feedback !
n°1934074
AGA
La boîte à Bokeh!
Posté le 21-10-2009 à 10:01:37  profilanswer
 

Salut,
 
merci :)
 
Alors, dans le cadre d'une préparation d'url pour de l'url rewriting, je dois préparer certains morceaux de strings pour ne pas avoir de caractères spéciaux, ni accents.
 
Comme tu l'as vu, premier ereg remplacement de tout ce qui n'est pas des lettres ou du chiffre par un point.
le dernier ereg, suppresion d'un tiret en fin de ligne, c'est plutôt un bug, parceque le caractère de remplacement du premier ereg était le - à l'origine.
 


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
n°1934096
Tirkyth
Posté le 21-10-2009 à 10:21:38  profilanswer
 

D'accord. Je te laisse modifier ma 2ème regexp pour changer le tiret par un point.
 
Par contre cette solution n'est peut-être pas la mieux. Par exemple, un titre comme "Cet été, direction Hawaï !" deviendra "Cet..t...direction.Hawa..." non ?
 
Si tu veux, j'ai trouvé cette fonction sur internet qui devrait te donner un meilleur résultat :

Code :
  1. static public function rewrite($chaine)
  2. {
  3.    // remplace les caractères accentués par leur version non accentuée
  4.    $id = strtr($chaine,
  5.            'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ',
  6.            'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy' );
  7.    // remplace les caractères non standards
  8.    $id = preg_replace(
  9.                array(
  10.                    '`^[^A-Za-z0-9]+`',
  11.                    '`[^A-Za-z0-9]+$`',
  12.                    '`[^A-Za-z0-9]+`',
  13.                ),
  14.                array(
  15.                    '',
  16.                    '',
  17.                    '-',
  18.                ),
  19.                $id);
  20.  
  21.    return strtolower($id);
  22. }


---------------
Mon Feedback !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  préparer des url pour rewriting?

 

Sujets relatifs
Obtenir l'URL en cours rewriting inclus mais variables GET exclus[Résolu] Prob d'url rewriting avec OVH (.htaccess)
Problème Rewriting .htaccessUrl rewriting - domaine affichant contenu d'un sous-domaine
Un peu d'URL Rewriting [- Job's Done -]Url Rewriting et chaine de caractères
Problème avec URL rewritingProblème d'URL rewriting
Sous Domaine et Url RewritingProblème url rewriting
Plus de sujets relatifs à : préparer des url pour rewriting?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR