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 :

recupéré le nom des fichier depuis un html


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut recupéré le nom des fichier depuis un html
    Bonjour à tous

    voila je galère depuis ce matin sur une fonction qui devrai récupéré le nom d'un fichier présent dans une page html de ce style.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             lundi 6 juillet 2011    10:21        <dir> 00555500
    ici le nom du fichier c'est "00555500"

    donc j'ai prenser à utiliser une fonction preg_match que j'ai malheureusement du mal à maitrisser.
    j'essaye de lui dire dès que tu a "<dir>" tu me recupère ce que tu as derière.
    donc j'ai fait ce code .
    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
     
    elseif ($fp = fopen($path , 'rb'))  {
     
           if (!$fp) {
        echo "$errstr ($errno)<br />\n";
        } else {
        while (false !== ($filename = stream_get_contents($fp))) {
           if (!in_array($filename, $exclude_array)) {
           	preg_match('`^<[a-z]+>[0-9]+)$`', $path, $matches);
              $file = array('name' => $path . $matches,
                            'namefile' => $matches,
                            'is_dir' => is_dir($path . $matches)
                                                 );
     
           $result[] = $file;
    mais j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: preg_match(): Compilation failed: unmatched parentheses at offset
    Merci d'avance de votre aide.

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Salut,

    Tu n'as pas ouvert ta parenthèse dans ton pattern.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut oui
    Bonjour et merci de ta réponse.

    oui en effet c'est mon preg match qui merde

    donc j'ai essayer sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     preg_match('`^( [a-zA-Z0-9])  ( [a-zA-Z0-9])  (<[a-zA-Z]>) ([0-9])  $`', $path, $matches);
    les espaces sontles séparateur

    et je recupère le 4 eme champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $file = array('name' => $path . $matches[4],
    j'ai plus l'erreur de preg mais ca


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes)
    et la je comprend pas


    merci .

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    C'est que ton script prend trop de mémoire à l'exécution. Optimise ton traitement si tu peux ou augmente la valeur de memory_limit dans le php.ini ou via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set("memory_limit",'16M');
    Tu as quoi comme traitement avant ? Tu traites beaucoup de ligne dans ta boucle ?

    Pour le pattern j'aurai mis un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('`(.*)<([a-z]+)> ([0-9]+)`', $path, $matches);
    Mais je suis pas un spécialiste des expressions régulières
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  5. #5
    Membre expérimenté
    Homme Profil pro
    DSI interne
    Inscrit en
    Juin 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI interne
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 197
    Par défaut
    Pourquoi ne pas faire ça directement si la balise dir existe toujours ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('<dir> ([0-9]+)', $path, $matches);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 78
    Par défaut
    Merci de ta réponse

    J'ai du raté un épisode car oui en effet ton idée MinDBuSteR étais judicieuse
    mais malheureusement ca me créer une autre erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: preg_match(): Unknown modifier '
    avec le code suivant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         preg_match('<dir> ([0-9]+)', $path, $matches);
              $file = array('name' => $path . $matches,
                            'namefile' => $matches,
                            'is_dir' => is_dir($path . $matches)
                                              );
    merci à tous de votre aide.

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

Discussions similaires

  1. Stocker les nom des fichiers d'un type d'un repértoire
    Par Bloodscalp dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/09/2006, 14h26
  2. fonction qui met en liste les noms des fichiers
    Par aliassaf dans le forum Général Python
    Réponses: 2
    Dernier message: 22/06/2006, 11h50
  3. Ecrire les noms des fichiers dans une colonne
    Par REGIMBAL dans le forum Access
    Réponses: 1
    Dernier message: 20/04/2006, 11h29
  4. Noms des fichiers téléchargés par wget
    Par benj63 dans le forum Linux
    Réponses: 2
    Dernier message: 22/02/2006, 11h54
  5. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/12/2005, 23h19

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