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 :

Nesting of markers [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kernigansnotdead
    Homme Profil pro
    Traducteur technique anglais > français indépendant
    Inscrit en
    Septembre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Traducteur technique anglais > français indépendant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 77
    Par défaut Nesting of markers
    Bonjour,

    voila, j'ai écrit une fonction qui comporte des instructions if(regex...) imbriqués. Et en fait, le mieux c'est de d'abord montrer le 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    for ($i=0;$i<sizeof($lines);$i++)  #for each line of the source code of the file
    					{
     
    						/////////////////////////////////////////////////
    						////////// SEARCHING FOR COMPANY NAME ///////////
    						/////////////////////////////////////////////////
    						if(preg_match('/<h1 style="margin-left:20px;margin-top:5px;">(.*)<\/h1>/', $lines[$i], $matches))		
    							{
    								#echo 'Line = '.htmlspecialchars($lines[$i]).'<br>';	
    								echo '<b>'.$fd_cpn.'- '.$matches[1].'</b><br>';	
    								$db_company_name=ereg_replace("'","''",$matches[1]);
     
    								/*if(in_array($db_company_name,$companyNames))
    									{
    										#echo 'skip this file';
    										echo $fd_cpn.'- '.$matches[1].' already in array!<br>';	
    									}
    								else
    									{
    										#inserting company names to array
    										$inserttoarray=array_push($companyNames,$db_company_name);
    									}*/
     
    									/////////////////////////////////////////////////
    									////////// SEARCHING FOR COMPANY TYPE ///////////
    									/////////////////////////////////////////////////
    									echo 'xxxxxxxxxxxxxxxxxxxxxxxxx';
    									if(ereg("Firmentyp",$lines[$i]))		
    										{									echo 'yyyyyyyyyyyyyyyyyyyyyy';
    		}
    Voila, le problème est tout simple : le 'yyyyyyyyyyyyyyy' ne s'affiche pas,
    pas tant que se trouve le 'ereg' de imbriqué. Si j'avais par exemple une trim à la place,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(trim("Firmentyp",$lines[$i]))		
    										{									echo 'yyyyyyyyyyyyyyyyyyyyyy';
    		}
    ou n'importe quoi d'autres, le 'yyyyyyyyyyyyyyyyyyy' s'afficherait.

    N'est il donc pas possible d'embriquer des ereg a l'interieur d'autres ereg ou fonctions du meme type, comme preg_match par exemple?
    Est ce que c'est ce que l'on sous-entend quand on dit 'ereg() doesn't support the nesting of markers?'

    Merci pour votre réponse
    knd

  2. #2
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    Petites remarques :
    Dans ton preg_match, tu devrais peut etre ajouter un ? après ton *.
    Remplace ton ereg_replace par un str_replace.
    Au lieu de ereg("Firmentyp",$lines[$i]) pourquoi ne pas utiliser strpos ?

  3. #3
    Membre confirmé Avatar de kernigansnotdead
    Homme Profil pro
    Traducteur technique anglais > français indépendant
    Inscrit en
    Septembre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Traducteur technique anglais > français indépendant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 77
    Par défaut
    Bonjour,

    et merci pour ta réponse. En fait, j'ai résolu le problème en changeant l'algorythme du programme entier.

    Merci en tout cas pour ton aide,

    knd

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    De manière générale :
    • Évite les expressions rationnelles si tu peux les éviter ;
    • N'utilise jamais ereg_* mais preg_*, car les ereg_* ont disparu du core de PHP depuis quelques versions.

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

Discussions similaires

  1. [STRUTS]Utilisation de nested:iterate
    Par chimera dans le forum Struts 1
    Réponses: 3
    Dernier message: 14/10/2005, 09h38
  2. [STRUTS] Nested tags validation - Client side
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/07/2005, 13h21
  3. [struts] Nested a longeur variable
    Par l.machot dans le forum Struts 1
    Réponses: 8
    Dernier message: 16/09/2004, 16h33
  4. [STRUTS] Options tag must be nested in a Select tag
    Par meufeu dans le forum Struts 1
    Réponses: 2
    Dernier message: 26/05/2004, 10h21
  5. [STRUTS][NESTED] et OptionCollection
    Par hamed dans le forum Struts 1
    Réponses: 15
    Dernier message: 03/02/2004, 12h27

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