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 :

Probleme avec substr


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Azerbaïdjan

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Probleme avec substr
    je travaille un site en joomla , je creer un fichier php qui va extraire une chaine d'un champ d'une table , ce champ contient une table
    <table><tr><td>contenu que je veux extraire </td></tr></table>

    mais avec la fonction subtr je lui demande d'extraire la chaîne entre 0 et 4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo substr(0, 4); ?>
    mais cela me donner comme résultat

    <tabl


    Donc quesque je faire pour extraire le contenu que je veux ?
    merci d'avance

  2. #2
    Membre actif
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Points : 226
    Points
    226
    Par défaut
    Vous devriez plutôt poster dans le forum PHP à priori. Lisez la documentation et vous verrez qu'il apparait tout à fait normal que lorsque vous demandez à la fonction SUBSTR d'extraire les 5 premiers caractères de la chaîne <table><tr><td>contenu que je veux extraire </td></tr></table> elle vous renvoie <tabl.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo substr(0, 4); ?>
    Déjà ne peut pas marche, mais veut dire : coupe moi du début jusqu'au quatrième caractère. Il a donc bien fait son travail.
    Deux solutions possibles à priori (Je n'ai effectué aucun tests) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    $mavariable="<table><tr><td>contenu que je veux extraire </td></tr></table>";
    echo $mavariable;
    //Instanciation
    $positionDebut=0;
    $positionFin=0;
    //Recherche des positions balises
    $chaineAtrouver="<td>";
    $positionDebut=strpos ($mavariable ,$chaineAtrouver);
    $chaineAtrouver="</td>";
    $positionFin=strpos ($mavariable ,$chaineAtrouver);
    //Les positions sont des entiers, il est donc possible de leur rajouter un ou deux caractères...
     
    //Affichage
    $mavariable = substr($mavariable,$positionDebut,$positionFin);
    echo $mavariable;
     
    /*Variante*/
    $mavariable="<table><tr><td>contenu que je veux extraire </td></tr></table>";
    echo $mavariable;
     
    //On retire ce que l'on ne veut pas et on affiche
    $mavariableTemporaire=str_replace("<table><tr><td>", str_replace("</td></tr></table>", $mavariable));
    echo $mavariableTemporaire;
    Mais la prochaine fois : Va ici, cela pourra t'aider je pense....

  4. #4
    Membre régulier Avatar de MTroy_
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 63
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Pour ce genre de traitement, il est chaudement recommandé d'employer les regex, sans quoi le code devient trop barbare pour bien faibles résultats.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
            $html = "<table><tr><td>ce que je veux extraire</td></tr></table>";
            preg_match("/<td>(.*)<\/td>/i", $html, $html_extrait);
            echo array_pop($html_extrait);
    ?>

    Lien tutorial sur les regex : http://g-rossolini.developpez.com/tutoriels/php/regex/
    Autre bon lien, en anglais : http://www.phpro.org/tutorials/Intro...PHP-Regex.html

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

Discussions similaires

  1. probleme avec la fonction SUBSTRING
    Par kanebody dans le forum InterBase
    Réponses: 1
    Dernier message: 04/01/2010, 09h21
  2. probleme avec substr
    Par ben7875 dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2009, 15h50
  3. probleme avec SUBSTRING
    Par lg022 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 14/05/2008, 15h24
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 08h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 09/06/2002, 00h06

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