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 :

Mettre à jour la Regex du cookie [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut Mettre à jour la Regex du cookie
    bonjour

    voila une partie de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function getCookie($data){
        preg_match_all('#Set-Cookie: (.*?)(;|\\r|\\n)#mi', $data, $match);
        return (empty($match[1]) ? null : implode(';', $match[1]) . '; ');
    } 
    function get($url, $opt = null)
    comme je n'est pas créer ce script je cherche comment metre a jour la regex du set cookie quel information je doit trouver ?

    merci a tout le monde et bonne année

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Je ne vois pas trop ce que tu entends par "mettre à jour", car cette fonction, certes perfectible, fait exactement ce qu'on lui demande. Si c'est la pattern qui te rebutes, un petit détour par la case tutoriel solutionnera ton problème car les notions de regex utilisées ici sont plutôt basiques, c'est pourquoi je ne vais pas les détailler. N'hésites pas à t'entraîner ici.

    90% d'un problème peut se résoudre en le mettant correctement en mots. Que fait cette fonction?

    Le rôle de la fonction getCookie est de récupérer la paire clé/valeur de chaque ligne Set-Cookie d'une entête http envoyée par un serveur ($data), puis de renvoyer une chaîne de caractères avec toutes les paires séparées par un ; plus un autre ; final et un espace.
    Une fois ceci fait, il ne reste plus qu'à améliorer cette fonction:
    • en utilisant des noms de variables qui ont un sens
    • en exploitant la valeur de retour de la fonction preg_match_all
    • en améliorant la pattern

    Exemple:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getCookie($httpHeader) {
        if (preg_match_all('~^Set-Cookie: \K[^;\r\n]+~m', $httpHeader, $matches))
            return implode(';', $matches[0]) . '; ';
    }

    Si aucune correspondance n'est trouvée, la fonction renverra NULL comme toute fonction sans return.

    Améliorations sur la pattern:
    • on exploite le modificateur m en utilisant l'ancre ^ (à noter que dans la pattern d'origine ce modificateur ne sert strictement à rien)
    • on utilise \K pour enlever le début de la ligne (Set-Cookie:) du résultat de la correspondance, ce qui évite de créer des groupes de capture.
    • on utilise une classe de caractère ne contenant ni ;, ni CR, ni LF, ce qui permet d'utiliser un quantificateur gourmand bien plus rapide qu'un quantificateur paresseux.


    Autre voie d'optimisation possible:
    Si d'une manière générale les entêtes http contiennent moins de S majuscules que de lignes, il peut être intéressant de supprimer l'ancrage (donc plus de ^ ni de modificateur m). Ainsi le moteur de regex, au lieu de faire des tentatives à chaque début de ligne, fera des tentatives à chaque S majuscule.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    merci pour c'est info p.s j'ai résolu mon problème

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Na
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Na

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 26
    Points
    26
    Par défaut savoir comment executer du python dans python
    Bonjour

    je voudrais créer un script avec une fonction que je pourrais appeler dans mon fichier principal python ma fonction est un script qui récupaire le nom dans les tags titre et faire la modification et me donne une variable avec la modification jusque-là ça fonctionne

    mais ce que je ne sais pas faire c'est d'éxecuté le script et récupéré cette variable pour mon script principal si vous avez une idéer je suis preneur

    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing]Mettre à jour un champ d'un autre Jfame
    Par yoyothebest dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 14/09/2004, 14h39
  2. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 16h56
  3. Réponses: 3
    Dernier message: 09/07/2004, 11h23
  4. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 11h08
  5. Réponses: 6
    Dernier message: 14/02/2003, 17h52

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