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 de code


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Probleme de code
    Bonjour a tous !

    J'ai un probleme de code php, qui vous paraitra certainement tres simple, mais mon dernier bout de code en php remontant a la version 2, soyez indulgents
    Merci d'avance.

    Voila 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
    $tableau = array();
    $tabdecou = array();
    $separa = "\n";
     
    $tableau[0] = strtok($feedin, $separa);
    $i=1;
    $k=0;
    while ($car = strtok($separa))
    	{ $tableau[$i++] = $car;
    	  if ($car = "Supprimer\n")
    		{ $tabdecou[$k++] = $i;
    		}
    	}
    echo "<br>$i lignes dans ce rapport<br>";
    for  ($j=0; $j<$i; $j++)
        echo "$j ==> $tableau[$j]<br>";
     
     
    for  ($j=0; $j<$k; $j++)
        { echo "ArrayPos : $j - Valeur : $tabdecou[$j]<br>";
        }
    Un extrait du resultat :
    ArrayPos : 0 - Valeur : 2
    ArrayPos : 1 - Valeur : 3
    ArrayPos : 2 - Valeur : 4
    ArrayPos : 3 - Valeur : 5
    ArrayPos : 4 - Valeur : 6
    ArrayPos : 5 - Valeur : 7
    ArrayPos : 6 - Valeur : 8
    L'affichage du contenu du tableau $tabdecou n'est la a que pour verifier ce qu'il contient !

    Ce que je cherche a obtenir :
    La chaine de depart est fractionnée selon selon le parametre "\n" et chaque morceau est "rangé" dans un tableau ($tableau). Quand l'une des valeurs de ce tableau est egale a "Supprimer\n", j'aimerais qu'il me note l'indice de l'enregistrement du tableau $tableau, dans un autre tableau, qui est $tabdecou.
    Ainsi, les enregistrement du tableau $tabdecou devraient correspondre a ceux du tableau $tableau comportant la valeur "Supprimer\n" !

    N'hésitez a me demander si je ne suis pas clair
    En attendant vos conseils ou remarques je retourne plancher dessus !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($car == "Supprimer\n")
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Salut !
    J'ai essayé avec cette modification mais ca ne fonctionne toujours pas. Voici donc le code, avec un peu plus d'explications :
    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
    # Decoupage des messages par /sauts de lignes et recherche "supprimer"
    echo "<br>decoupage<br>";
    $tableau = array();
    $tabdecou = array();
    $separa = "\n";
    $decou = "Supprimer";
     
    $tableau[0] = strtok($feedin, $separa);
    $i=1;
    $k=0;
    while ($car = strtok($separa))
    	{ $tableau[$i] = $car;
    	  if ($car == $decou)
    		{ $tabdecou[$k] = $i;
    		}
    	$i = $i+1;
    	$k = $k+1;
    	}
     
    echo "<br>$i lignes dans ce rapport<br>";
    for  ($j=0; $j<$i; $j++)
    	echo "$j ==> $tableau[$j]<br>";
     
    echo "<br>Correspondances avec supprimer<br>";
    for  ($j=0; $j<$k; $j++)
    	 echo "ArrayPos : $j - Valeur : $tabdecou[$j]<br>";
    Voici ce que ca me retourne :
    [de l'offset 0 a:]
    Notice: Undefined offset: 42 in C:\Program Files\EasyPHP-5.3.3\www\feed\scripts\cc.php on line 39
    ArrayPos : 42 - Valeur :

    Notice: Undefined offset: 43 in C:\Program Files\EasyPHP-5.3.3\www\feed\scripts\cc.php on line 39
    ArrayPos : 43 - Valeur :

    Notice: Undefined offset: 44 in C:\Program Files\EasyPHP-5.3.3\www\feed\scripts\cc.php on line 39
    ArrayPos : 44 - Valeur :
    ArrayPos : 45 - Valeur : 46

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'avance petit a petit...
    A priori je dirais que le soucis viens d'ailleurs... Considerant ceci :

    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
    echo "En test :<br>";	
    echo "<br>$i lignes dans ce rapport<br>";
    for  ($j=0; $j<$i; $j++)
    	{echo "<br>Position dans tableau : $j ==> $tableau[$j]<br>";
    	$check = $tableau[$j];
    	echo "Affecter a la variable check > $check";
    		if ($check == "Supprimer")
    			{ $tabde[$k] = $check;
    			echo " => Mot clé trouvé !<br>";
    			$k = $k+1;
    			}
    		else echo " => Supprimer non trouvé<br>";
    	}
     
    for  ($j=0; $j<$k; $j++)
    		echo "<br>tabde [$j] => $tabde[$j]";
    Voila le resultat :
    osition dans tableau : 36 ==>
    Affecter a la variable check > => Supprimer non trouvé

    Position dans tableau : 37 ==>
    Affecter a la variable check > => Supprimer non trouvé

    Position dans tableau : 38 ==> Supprimer
    Affecter a la variable check > Supprimer => Supprimer non trouvé

    Position dans tableau : 39 ==>
    Affecter a la variable check > => Supprimer non trouvé
    Mais a la fin !! :
    Position dans tableau : 45 ==>
    Affecter a la variable check > => Supprimer non trouvé

    Position dans tableau : 46 ==> Supprimer
    Affecter a la variable check > Supprimer => Mot clé trouvé !

    tabde [0] => Supprimer
    Ce qui me fait dire qu'il doit y avoir un/des caracteres cachés dans ces chaines.. Qu'en pensez vous ?

    EDIT : Je precise que j'ai filtré la chaine en question pourtant...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<br>Chaine nettoyée :<br>";
    $feednett = trim($feedin);
    echo $feednett;

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ou vient se placer $feednett dans ton code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton interet a mon probleme ^^

    J'ai recommencé mon bout de programme, de zero, et j'ai reussi a avancer un peu plus loin. Voila le nouveau code, qui fait la meme chose que l'ancien, mais la ca fonctionne (Ne vous etonnez pas, il y a plein de "messages" de controles pour moi, qui ne seront pas conservés au final. De plus, je detaille des fois des operations qui pourraient etre reduitent...)

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?php
    $string = $_POST['feed'];
     
    # $string = "This is\tan example\nstring. This is\tan example\nstring. This is\tan example\nstring. This is\tan example\nstring.";
     
    // Utilisez aussi les nouvelles lignes et les tabulations 
    // comme séparateur de mots
    $tok = strtok($string, " \n\t");
    echo ("Phrase test : $string<br><br>");
     
    $tab = array();
    $k = 0;
     
    while ($tok !== false) {
        echo "Word = $tok<br />";
        $tab[$k] = $tok;
    	$tok = strtok(" \n\t");
    	$k++;
    }
     
    echo ("<br>verification du tableau :<br>");
    for ($j=0;$j<$k; $j++) {
    	echo "$j => $tab[$j]<br>";
    }
     
     
    $look = "Supprimer"; // Variable de recherche
    echo "<br>Chercher un element dans le tableau. Element cherché = <u>$look</u><br>";
     
    for ($j=0;$j<$k; $j++) {
    	$tran = $tab[$j];
    	$tran = trim($tran);
    	echo "Variable testée = $tran ";
    	if ($tran == $look) {
    		echo "<= variable trouvée !<br>";
    	}
    	else
    	echo "<br>";
    }
     
    echo "<br>Meme chose mais avec un tableau de correspondance (reper). Element cherché = <u>$look</u><br>";
    $m = 0;
    $reper = array();
     
    for ($j=0;$j<$k; $j++) {
    	$tran = $tab[$j];
    	$tran = trim($tran);
    	echo "Variable testée ($j) = $tran ";
    	if ($tran == $look) {
    		echo "<= variable trouvée !<br>";
    		$reper[$m] = $j;
    		$m++;
    	}
    	else
    	echo "<br>";
    }
     
    echo "<br>Verification du tableau (reper). Element cherché = <u>$look</u><br>";
    for ($j=0; $j<$m; $j++) {
    	echo "Element $j = $reper[$j]<br>";
    }
     
    // Reconstruction des messages
    echo "<br>Reconstruction des messages :<br>";
     
    // Recuperation du nombre d'element composant le tableau
    $nbele = end($reper);
    $cle = key($reper);
    echo "cle = $cle";
    $nbtab = $cle + 1;
    // on a donc le nombre de messages composant la requete
    echo ("<br><br>Il y a $nbtab messages composant cette requete !<br>");
     
    // determination des adresses
     
     
     
    ?>
    Si vous avez des remarques n'hesitez pas !

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

Discussions similaires

  1. probleme de code
    Par fixouille90 dans le forum Access
    Réponses: 11
    Dernier message: 09/12/2005, 15h23
  2. probleme de code simple
    Par BFH dans le forum C
    Réponses: 18
    Dernier message: 28/10/2005, 18h57
  3. [VB.Net] Probleme popup code behind
    Par balibo dans le forum ASP.NET
    Réponses: 19
    Dernier message: 17/10/2005, 12h22
  4. probleme de code formulaire
    Par bachilbouzouk dans le forum ASP
    Réponses: 45
    Dernier message: 13/04/2005, 10h01
  5. [debutant] probleme de code :-(
    Par flogreg dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 16/08/2004, 18h20

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