Extraire une partir d'URL (ou URI)

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Extraire une partir d'URL (ou URI)

    Bonjour,
    J'ai besoin d'extraire une partie d'url entre deux points précis.
    Voici par exemple l'URL
    https://www.monsite/page/164-test
    164 est l'ID de la page, c'est cette id dont j'ai besoin. Donc entre / qui suit page et le tiret -

    J'ai penser localiser le début de la chaîne à extraire puis la fin, mais ensuite je ne vois pas comment faire.
    Code PHP:
    $mystring $_SERVER['REQUEST_URI'];
    $findme   'page/';
    $pos strpos($mystring$findme);
    echo 
    " - ";
    echo 
    $mystring;
    echo 
    " - ";
    echo 
    $pos 5// Affiche la position du premier caractère qui suit de la chaîne "pages/"

    $tiret   '-';
    $pos strpos($mystring$tiret);
    echo 
    $pos;// Affiche la position du tiret. 
    Quelqu'un aurait-il une idée ?

    Cordialement.

    Eric
    Dernière édition par Agrepe à 03/10/2018, 11h13

  • #2
    Bonjour,
    question bête mais pourquoi tu ne chopes pas l'id directement au lieu d'aller le chercher dans l'url ?
    “Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter le nouveau service (en Beta) de la base de connaissance https://kb.joomla.fr
    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérer à l'AFUJ https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Bonjour Eric,

      La version PHP pur est :
      Code PHP:
      $s 'https://www.monsite/page/164-test';
      $posdeb strrpos($s'/') + ;
      $posfin strpos($s,'-',$posdeb);
      echo 
      substr($s$posdeb$posfin-$posdeb); 
      Un message d’erreur sur votre site Joomla, consultez la base de connaissance https://kb.joomla.fr
      ---
      UP, un plugin "couteau suisse" à découvrir sur https//up.lomart.fr
      bgMax
      , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

      Commentaire


      • #4
        Un truc très bien pour tester ses codes PHP : http://phptester.net/
        Colle le code ci-dessus et tu verras le résultat

        C'est comme cela que je teste mes routines 'pur php' avant des les intégrer
        Un message d’erreur sur votre site Joomla, consultez la base de connaissance https://kb.joomla.fr
        ---
        UP, un plugin "couteau suisse" à découvrir sur https//up.lomart.fr
        bgMax
        , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

        Commentaire


        • #5
          Bonjour,
          En fait j'ai procédé autrement, j'ai effectivement "choppé" l'id directement comme le suggère Manu.
          J'ai fait:
          Code PHP:
          $LID JRequest::getVar('id'0'''int');
                  
          $page ES::page($LID);
                  echo 
          $page->getName(); 
          Merci pour tout.

          Bien cordialement.

          Eric

          Commentaire


          • #6
            Pour vite tester du php je préfère https://github.com/websiteduck/Run-Php-Code que j'installe sur mon localhost.
            lomart likes this.
            Christophe (cavo789)
            Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
            Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

            Commentaire


            • #7
              Merci Christophe,

              Je cherchais ça depuis un moment
              En plus, elle permet d'utiliser des fonctions comme pathinfo qui sont bloquées par sécurité.
              L'autre a l'avantage d'être sans installation
              Un message d’erreur sur votre site Joomla, consultez la base de connaissance https://kb.joomla.fr
              ---
              UP, un plugin "couteau suisse" à découvrir sur https//up.lomart.fr
              bgMax
              , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

              Commentaire


              • #8
                Salut

                Une approche :

                Code PHP:
                <?php

                $url 
                'https://www.monsite/page/164-test-2';
                $last basename($url);

                preg_match('~[^\-]*~'$last$match);

                echo 
                $match[0];
                J'utilise basename qui va traiter l'URL comme un nom de fichier et me retourner '164-test-2'

                Cela fait, j'isole tout qui se trouve avant le premier -

                $match[0] reprend alors l'ID.

                Mon code ne va pas se faire avoir avec p.ex.

                Code PHP:
                $url 'https://www.mon-site/page/164-test-2'
                puisqu'il extrait d'abord la dernière partie et donc reprendra bien l'alias.
                Christophe (cavo789)
                Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
                Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

                Commentaire

                Annonce

                Réduire
                1 sur 2 < >

                C'est [Réglé] et on n'en parle plus ?

                A quoi ça sert ?
                La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                Comment ajouter la mention [Réglé] à votre discussion ?
                1 - Aller sur votre discussion et éditer votre premier message :


                2 - Cliquer sur la liste déroulante Préfixe.

                3 - Choisir le préfixe [Réglé].


                4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                2 sur 2 < >

                Assistance au forum - Outil de publication d'infos de votre site

                Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                UTILISER À VOS PROPRES RISQUES :
                L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                Problèmes connus :
                FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                Installation :

                1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                Archive zip : https://github.com/AFUJ/FPA/zipball/master

                2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                et remplacer www. votresite .com par votre nom de domaine


                Exemples:
                Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/
                Pour executer le script: http://www..com/fpa-fr.php

                Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                Télécharger le script fpa-fr.php dans: /public_html/cms/
                Pour executer le script: http://www..com/cms/fpa-fr.php

                En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                Voir plus
                Voir moins
                Travaille ...
                X