IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Transformer url réelle en url fictive


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Transformer url réelle en url fictive
    Bonjour,

    Suite à la lecture de ce tutorial :http://g-rossolini.developpez.com/tu...?page=sommaire (qui d'ailleurs est excellent, félicitations à l'auteur), j'ai un petit problème pour transformer les liens de mon site web en lien fictif car je ne peux pas modifier manuellement tout les liens de mon site faute de temps.

    J'ai 2 types de liens :

    1° Les liens avec 1 seul paramètre comme par exemple : http://www.monsite.com/index.php?module=meteo. Ceux la sont ok, j'arrive a récupérer la valeur "meteo" et construire mon lien fictif avec.

    Par contre, j'ai un autre type de lien qui est http://www.monsite.com/index.php?mod...ie_photo&id=46
    Et la j'arrive toujours a récupérer ma valeur "module" mais impossible de récupérer la 2ème valeur autrement qu'en prenant toute la chaine "?module=galerie_photo&id=46" et utiliser un substr. Et la, problème c'est que je peux très bien avoir un id à 1,2,3,...n numéros donc c'est pas trop faisable.

    J'aurais donc besoin de votre aide pour m'indiquer comment je peux construire ma regexp pour rechercher ma valeur

    Pour le moment, j'utilise ce code la que j'ai pris du tuto et un peu modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(preg_match_all(
    	'#<a(.+)href=["|\']index.php\?module=galerie_photo&id_media=([0-9]+)["|\']?([^>]*)>(.*)</a>#Usi',
    	$contents,
    	$matches,
    	PREG_SET_ORDER))
    {
        // Parcourir les liens et les réécrire à l'aide de la base de données
        foreach($matches as $match){
            $pattern = $match[0];
    	$param1 = $match[1];
            $href = $match[2];				
    	$param2 = $match[3];
            $anchor = $match[4];
    Mais bon, ca ne fonctionne pas, ca ne me sors qu'un seul chiffre. Je sais plus trop comment faire surtout que j'ai très peu pratiqué les rexexp jusqu'a maintenant et donc peu d'expérience.

    Merci d'avance pour votre aide !

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,
    que veux-tu faire exactement et quel est le rapport avec le sujet qui, comme son nom peut laisser l'entendre, fait référence à l'url rewriting ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Désolé si je n'ai pas été clair.

    C'est bien de l'url rewriting que je veux faire.

    En fait, j'ai un site web ou je voudrai mettre en place l'url rewriting. Mais je n'ai pas envie, et pas le temps, de changer tout mes liens dans mon code source.

    J'ai donc lu le tutorial cité plus haut et l'auteur indique une méthode pour modifier les liens dynamiquement en utilisant un tampon (http://g-rossolini.developpez.com/tu...age_3#LIII-2-b)

    Mais en gros mon problème, c'est de savoir comment récupérer chaque valeur de paramètre d'un lien en utilisant les expressions régulières.

    Autrement dit, avec un lien comme ceci :

    <a href=''index.php?module=photo_galerie&id=46">Galerie</a>

    J'arrive a récupérer la valeur "photo_galerie" et la valeur galerie. Mais comment puis-je récupérer la valeur 46 ?

    Merci

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Pour récupérer la valeur 46 il faut que tu récupères l'occurence id de $_GET[], soit $_GET['id'].

    De quel forme veux-tu que tes URLs soient ? Car passer des paramètres dans l'url n'est pas l'url rewriting.

    Sinon si tu veux avoir une url de la forme monsite.fr/galerie-photo/46 tu peux créer un fichier ".htaccess" à la racine de ton site.

    Je suis un newbie en regex celle-ci dessous ne marche que pour des urls de la forme 'terme-terme-terme/terme' et non 'terme_terme'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^([-a-z0-9]+)/([-a-z0-9]+)$ /index.php?module=$1&id=$2 [L]
    Pour info même si Google a changé sa politique sur l'usage des "_" dans l'url, pour de nombreux robot indexeurs de sites internet, le tirets n'est pas pris en compte et il verra donc "galeriephoto". Je te conseille de le remplacer par un "-".

    Bon courage :p

Discussions similaires

  1. Masquer l'URL réelle avec URL rewriting
    Par sabdoul dans le forum Apache
    Réponses: 0
    Dernier message: 21/10/2014, 17h07
  2. Réponses: 3
    Dernier message: 18/02/2013, 06h15
  3. Cacher l'url réelle
    Par Flobynaldo dans le forum Langage
    Réponses: 12
    Dernier message: 26/06/2010, 15h54
  4. Transformer des URI en URL
    Par yoshï dans le forum Langage
    Réponses: 7
    Dernier message: 29/04/2008, 21h18
  5. Réponses: 5
    Dernier message: 02/01/2008, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo