Un if dans un while

Fermé
Fab121205
Messages postés
81
Date d'inscription
dimanche 26 juillet 2015
Statut
Membre
Dernière intervention
20 mars 2022
- 13 févr. 2018 à 17:41
 Fab1205 - 14 févr. 2018 à 07:34
Bonjour,
je sais que mettre un if dans un while ne fonctionne pas mais je ne vois pas comment je pourrais faire pour contourner ce problème. J'aimerais écrire les mots du'une phrase que l'utilisateur écrit mais seulement ceux qui ont plus de 3 caractères. Mon code :

		$phrase = $_POST['search'];
		
		$mots = explode(" ", $phrase);
		
		for($x = 0; $x < str_word_count($phrase); $x++)
		{
			if(strlen($mots[$x] > 3))
			{
			echo "<p> ".$mots[$x]."<br/></p>";
			}
			else
			{
			
			}
		}


Merci Fab1205

3 réponses

yg_be
Messages postés
19262
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 mai 2022
1 101
13 févr. 2018 à 19:36
bonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
0
Essaie un petit teste et tu verras que ca ne fonctionne pas j'ai cherché et en effet. L'erreur est qu'il y a un { dans le while ce qui est Interdit.
0
jordane45
Messages postés
35397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 mai 2022
4 145
13 févr. 2018 à 20:38
Bonjour,

erreur de parenthèse...
if(strlen($mots[$x] > 3))

A remplacer par
if(strlen($mots[$x]) > 3)

0
Oui j'ai vite réécrit le code mais ça marche quand même pas
0
jordane45
Messages postés
35397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 mai 2022
4 145
13 févr. 2018 à 20:48
Fais donc un print_r($mots); et montres nous ce que ça donne...
Et explique nous en détail ce qui, selon toi, ne fonctionne pas (le résultat obtenu vs le resultat attendu. )

Et file regarder ceci : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
(activation des erreurs php, récupération "propre" des variables AVANT de les utiliser, débugage de son code...etc... )
0
yg_be
Messages postés
19262
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 mai 2022
1 101
13 févr. 2018 à 22:43
pourquoi pas:
$phrase = $_POST['search'];
		foreach (explode(" ", $phrase) as $mot)
		{
			if(strlen($mot) > 3)
			{
			echo "<p> ".$mot."<br/></p>";
			}
		}
0
Merci beaucoup
0