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 :

Compter le nombre de voyelles [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Compter le nombre de voyelles
    Bonjour,
    Le but de ce petit exercice est de compter le nombre de voyelles entrées dans un formulaire. Le problème est que je n'y arrive pas et je ne trouve pas mes erreurs.
    Tout d'abord j'ai cette erreur qui s'affiche quand je le lance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: saisie in C:\Program Files\Wamp\www\Exo3\compte_nb_voyelle.php on line 4
    Et quand je clic sur le bouton sans rien mettre dans la case texte il me change m'a phrase alors qu'il devrait me dire que je n'ai rien saisi.
    Et il ne me compte pas le nombre de voyelle mais le nombre de lettre.
    Voici mon code si vous pouviez m'aider.
    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
    <html>
    	<body>		
    		<?php
    		$compteur=0;
    		$saisie = $_POST['saisie'];
     
    		function compter($saisie)
    		{
    			for($i=0;$i < strlen($saisie);$i++)
    			{
    				if(@eregi("[aeiuoy]", $saisie))
    				{
    					$compteur++;
    				}
    			}
    			return $compteur;
    		}
    		if(!isset($saisie))
    		{
    			echo "Vous n'avez rien saisi";
    		}
    		else
    		{
    			echo "Il y a ".compter($saisie)." voyelle(s) dans $saisie";
    		}
    		?>
     
    		<form method='POST' action='compte_nb_voyelle.php'>
    		<input name='saisie' type='text' size='20'>
    		<input name='compter' type='submit' value='Compter'>
    		</form>
    	</body>
    </html>
    Merci d'avance.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: saisie in C:\Program Files\Wamp\www\Exo3\compte_nb_voyelle.php on line 4
    Cette erreur signifie que l'index "saisie" n'existe pas pour cette variable : $_POST['saisie'].

    Et c'est normal, car tant que le formulaire n'est pas soumis, la variable $_POST n'existe pas du tout !

    Il faudrait donc mettre quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ( isset( $_POST['compter'] ) )
    {
        $saisie = $_POST['saisie'] ;
    } 
    else
    {
        $saisie = '' ;
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( isset( $_POST['compter'] ) ) ? $saisie = $_POST['saisie'] : $saisie = '' ;

    Pour le décompte des voyelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function compter($saisie)
    {
            $tabSaisie = str_split( $saisie ) ;
        	$tabVoyelle = array ( 'a', 'e', 'i', 'u', 'o', 'y' ) ;
        	$compteur = 0 ;
        	foreach ( $tabSaisie as $letter )
        	{
        		if ( in_array ( $letter , $tabVoyelle ) )
        		{
        			$compteur++ ;
        		}
        	}
            return $compteur ;
    }
    Tu peux aussi mettre : $tabVoyelle = str_split( 'aeiouy' ) ;

    Par contre va peut-être falloir penser aux accents...
    Et je pense que tu devrais aussi sortir tes fonctions de ton flux, pour l'instant il n'y en a qu'une mais par la suite si tu en rajoute ça sera plus lisible !

  3. #3
    Membre très actif Avatar de la_chouette
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 183
    Par défaut
    Bonjour,

    j'aurais plutot utiliser ceci pour les voyelles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(?:[aeiou]|(?<![aeiou])y)'
    et pour les consonne par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(?:[bcdfghjklmnpqrstvwxz]|(?<=[aeiou])y|^y)'

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par la_chouette Voir le message
    Bonjour,

    j'aurais plutot utiliser ceci pour les voyelles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(?:[aeiou]|(?<![aeiou])y)'
    et pour les consonne par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '(?:[bcdfghjklmnpqrstvwxz]|(?<=[aeiou])y|^y)'
    a quoi elles servent tes références ?

  5. #5
    Membre très actif Avatar de la_chouette
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 183
    Par défaut
    C'est un masque regexp que l'on peut coupler avec une fonction calback sur un tableau ... pour compter ...

    J'utilise cela pour un projet (analyseur syntaxique) ...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par la_chouette Voir le message
    C'est un masque regexp que l'on peut coupler avec une fonction calback sur un tableau ... pour compter ...

    J'utilise cela pour un projet (analyseur syntaxique) ...
    ta un exemple parce que je vois pas dutout

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/11/2005, 21h20
  2. Compter le nombre de page d'un report
    Par ToYonos dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/06/2003, 09h36
  3. compter le nombre de record
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/03/2003, 09h53
  4. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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