Extraire une partir d'URL (ou URI)

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

  • cavo789
    a répondu
    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.

    Laisser un commentaire:


  • lomart
    a répondu
    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

    Laisser un commentaire:


  • cavo789
    a répondu
    Pour vite tester du php je préfère https://github.com/websiteduck/Run-Php-Code que j'installe sur mon localhost.

    Laisser un commentaire:


  • Agrepe
    a répondu
    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

    Laisser un commentaire:


  • lomart
    a répondu
    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

    Laisser un commentaire:


  • lomart
    a répondu
    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); 

    Laisser un commentaire:


  • manu93fr
    a répondu
    Bonjour,
    question bête mais pourquoi tu ne chopes pas l'id directement au lieu d'aller le chercher dans l'url ?

    Laisser un commentaire:


  • Agrepe
    a crée un sujet [RÉGLÉ] Extraire une partir d'URL (ou URI)

    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

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X