Utilisation preg_match

Discussion dans 'URL Rewriting et .htaccess' créé par clement106, 30 Mars 2010.

  1. clement106
    clement106 WRInaute discret
    Inscrit:
    5 Avril 2007
    Messages:
    78
    J'aime reçus:
    0
    J'aimerais rewriter une url dans mon site qui utilise le cms Drupal.

    Drupal a une fonction pour faire celà: custom_url_rewrite_outbound

    J'aimerais transformer cette url:
    modeles_2r/2009-aprilia-sx-50-id-2?quicktabs_23=commentaires

    Comme celà:
    modeles_2r/2009-aprilia-sx-50-id-2#commentaires



    Code:
    function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
      global $node;
    
      // Change all 'node' to $node->title
      if (preg_match('|^modeles-2r(/.*)|', $path, $matches)) {
        $path = 'test';
      }
    }
    Avec cette configuration, si mon url est: modeles_2r/2009-aprilia-sx-50-id-2, elle devient: test donc c'est ok, il reste plus que le problème du ?quicktabs_23=commentaires que je n'arrive pas à transformer.

    Merci pour votre aide :wink:
     
  2. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    Est-ce la seule url de ce type que tu veux transformer ?
    Si oui :
    Code:
    $path = str_replace('?quicktabs_23=', '#', $path);
    Si non, peut-être que preg_match() serait mieux adapté :roll:
     
  3. clement106
    clement106 WRInaute discret
    Inscrit:
    5 Avril 2007
    Messages:
    78
    J'aime reçus:
    0
    Tu veux dire avec comme url quicktabs_23? Oui surement donc je pense que tu as raison d'utiliser la fonction str_replace.

    Le gros problème c'est que je viens de me rendre compte que la variable $path ne gère pas ce qu'il y a après le ?
    Pour trouver ce qu'il y a après c'est: $options->query.

    La fonction retourne apparemment la variable $path donc je ne sais pas comment m'y prendre, j'ai donc posteé ma question sur le forum de Drupal. J'espère avoir une réponse :D

    En tout cas, merci pour avoir essayé de m'aider :wink:
     
  4. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    pas besoin de la retourner, elle est directement modifiée car passé à la fonction avec le symbole '&'

     
  5. clement106
    clement106 WRInaute discret
    Inscrit:
    5 Avril 2007
    Messages:
    78
    J'aime reçus:
    0
    D'accord, je ne savais pas pour le '&'. J'ai donc ajouté le bout de code mais rien ne se passe.

    L'url est toujours: modeles_2r/2009-aprilia-sx-50-id-2?quicktabs_23=commentaires

    Le problème c'est que la str_replace s'occupe de la variable $path qui ne contient pas ce qu'il y a après le '?'

    Si je met: $path = 'essai';

    Mon url: modeles_2r/2009-aprilia-sx-50-id-2?quicktabs_23=commentaires

    devient: essai?quicktabs_23=commentaires
     
  6. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    peut-être :?:

    Code:
    $options->query = str_replace('?quicktabs_23=', '#', $options->query);
     
  7. clement106
    clement106 WRInaute discret
    Inscrit:
    5 Avril 2007
    Messages:
    78
    J'aime reçus:
    0
    Si je fais un print_r de la variable $options, voici le résultat:

    Code:
    Array
    (
        [query] => quicktabs_23=commentaires
        [attributes] => Array
            (
            )
    
        [html] => 
        [fragment] => 
        [absolute] => 
        [alias] => 
        [prefix] => 
        [external] => 
        [base_url] => http://localhost/beta2_les50cm3
    )

    Donc si je met:
    Code:
    $options['query'] = str_replace('quicktabs_23=commentaires', '#commentaires', $options['query']);
    l'url sera: modeles_2r/2009-aprilia-sx-50-id-2?%23commentaires

    Pour enlever le ? j'ai la solution:
    Code:
    $options[query2] = $options[query];
    $options[query] = '';
    $path = 'essai' . $options[query2];
    Résultat: essai%23commentaires

    Tu aurais une idée comment remplacer ce %23 par #? J'ai essayé avec utf8_encode() et urlencode() mais sans succès.

    Merci pour ta patience :wink:
     
  8. clement106
    clement106 WRInaute discret
    Inscrit:
    5 Avril 2007
    Messages:
    78
    J'aime reçus:
    0
    Je vais finalement renoncer à rewriter cette url puisque la fonction ne permet apparemment pas de mettre des caractères spéciaux comme '#'.

    Par contre je vais faire des liens manuel.

    Il faut donc que je configure mon .htaccess mais pour le moment je n'y arrive pas.

    Voilà donc l'url que je tape manuellement:
    modeles_2r/2009-aprilia-sx-50-id-2#commentaires

    Il faudrait que mon .htaccess transforme cette url par:
    modeles_2r/2009-aprilia-sx-50-id-2?quicktabs_23=commentaires

    J'ai fait deux ou trois essais mais sans succès. Le truc c'est que si je met '#' dans mon .htaccess il l'interprète comme du texte a ne pas prendre en compte.

    Merci pour ton aide.
     
Chargement...
Similar Threads - Utilisation preg_match Forum Date
Questionnaire : limites de l'utilisation de l'IA en SEO Rédaction web et référencement 31 Mai 2022
Utilisations du signe + dans les noms composés de villes Référencement Google 29 Juillet 2021
Utilisation de sous domaines au lieu de noms de domaine propres Techniques avancées de référencement 18 Juin 2021
Aide utilisation twitter : gérer les commentaires Twitter 3 Mars 2021
Utilisation d'un nom de domaine alternatif Débuter en référencement 17 Février 2021
Utilisation d'une CMP pour les nuls Monétisation d'un site web 23 Janvier 2021
Utilisation des URL canoniques d'un sous domaine à un autre Référencement Google 10 Novembre 2020
Utilisation de AMP sur un petit site vitrine Référencement Google 3 Mars 2020
WordPress Optimisation et utilisation d'une page Auteur avec Bio Rédaction web et référencement 29 Octobre 2019
Utilisation de Adwords pour trouver des mots clés Débuter en référencement 23 Août 2019
Utilisation d'un service... 1700€ plus tard inquiétude... Netlinking, backlinks, liens et redirections 13 Juillet 2019
Duplicate content et instuction d'utilisation fiche produit Rédaction web et référencement 10 Avril 2019
Texte utilisation cookies et protection des données : pb de duplicate ? Débuter en référencement 8 Janvier 2019
Microsoft modifie ses conditions d'utilisation (CGU) Droit du web (juridique, fiscalité...) 20 Novembre 2018
Un article intéressant sur l'indexation des images et l'utilisation du "lazyload" Crawl et indexation Google, sitemaps 9 Novembre 2018
Utilisation de l'attribut "hreflang" Référencement international (langues, pays) 27 Septembre 2018
Utilisation de load (Jquery) sans impacter le SEO Développement d'un site Web ou d'une appli mobile 4 Août 2018
De l'intérêt des tags et de leur utilisation Débuter en référencement 1 Mai 2018
Utilisation NDD expiré international Netlinking, backlinks, liens et redirections 18 Avril 2018
Les principaux freins à l'utilisation d'AdWords en entreprise AdWords 27 Janvier 2018