Php aidez moi si vous plait

Résolu
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   -  
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voici le code qui ne marche pas

$words = file('texte3.txt');
$word = 'ligne7';
if(in_array($words, $word)){
echo "le mot exite";
}
else{
//
echo "le mot n existe pas";
}
ca m affiche ce message d'erreur


Warning: Wrong datatype for second argument in call to in_array in c:\program files\easyphp\www\labo modifier fichier\testa.php on line 4
lemot nexite pas
A voir également:

26 réponses

zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
Salut, pourquoi utiliser un in_array ? Utilise plutôt preg_match, si c'est juste pour de l'analyse dans une chaine c'est plus simple a mettre en place.
<?php
	$filename = "texte3.txt";
	$handle = fopen($filename, "rb");
	$words = fread($handle, filesize($filename));
	fclose($handle);
	
	$word = '/ligne5/';
	if(preg_match($word, $words)){
		echo "le mot existe";
	}
	else{
		echo "le mot n existe pas";
	} 
?>

fread() permet de stocker un fichier dans une variable. Ça évite de mettre WHILE($ligne = fget()).
1
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
un tres tres tres tres tres tres tres grand merci de votre aide
le code qui marche est

<?php

$words = file_get_contents("texte3.txt");
$word = 'ligne4';
if( strpos($words, $word) !== false ){
echo "le mot existe";
}else{
echo "le mot n'existe pas";
}

?>

le probleme venai aussi du serveur qui est esayphp 1.6 j ai tester le code sur esayphp3 est ca a marcher

merci mille foie
1
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
Bonjour tout est expliquer dans la doc sur comment utiliser in_array
http://fr3.php.net/manual/fr/function.in-array.php
regarde bien le type des paramètre c'est la que tu t'es planté, en inversant les 2
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
aissaie:
<?php

$fichier=fopen("texte3.txt","r");
while($ligne=fgets($fichier));
{
words[]=ligne;
}
fclose($fichier);
$word = 'ligne7';
if(in_array($words, $word)){
echo "le mot exite";
}
else{
//
echo "le mot n existe pas";
} 

0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
tu propose quelque chose de plus compliqué qui ne résout pas le problème ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
est ce la même erreur ?
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
oui si on ne compte pas les 2 $ que tu as oublié ligne 6

regarde mon premier post j'ai tout dis
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
c'est bon j'ai trouvé il faut que tu inverse $words et $word dans ta fonction in_array
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
c'est ce que j'ai dis dans mon premier post ...
0
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
<?php

$fichier=fopen("texte3.txt","r");
while($ligne=fgets($fichier));
{
$words=$ligne;
}
fclose($fichier);
$word = 'ligne3';
if(in_array($words, $word)){
echo "le mot exite";
}
else{
//
echo "le mot n existe pas";
}
?>

LE CODE NE MARCHE PAS
IL AFFFICHE
Warning: Wrong datatype for second argument in call to in_array in c:\program files\easyphp\www\labo modifier fichier\testa.php on line 10
le mot n existe pas

NORMALEMENT IL DEVRAIT AFFICHER LE MOT EXISTE
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
<?php

$fichier=fopen("texte3.txt","r");
while($ligne=fgets($fichier));
{
$words=$ligne;
}
fclose($fichier);
$word = 'ligne3';
if(in_array($word, $words)){
echo "le mot exite";
}
else{
//
echo "le mot n existe pas";
}
?>
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
ça ne marchera pas non plus ...

il faudrait que tu test avant de poster ça éviterait que tu postes encore des codes qui buguent ...
0
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
j ai inverse words et word est ca ne m affiche plus de message d erreur mes ca m affiche a l ecran
le mot n exite pas alors que ligne5 ce trouve dans le fichier texte
d ou vient le probleme
<?php

$fichier=fopen("texte3.txt","r");
while($ligne=fgets($fichier));
{
$words[]=ligne;
}
fclose($fichier);
$word = 'ligne5';
if(in_array($word, $words)){
echo "le mot exite";
}
else{
//
echo "le mot n existe pas";
}
?>
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
on notera que mon script marchait parfaitement sans compter les 2 $ que j'avais oublié je me damande pourquoi tu a enlevé les 2 crochets à words[].
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
testé sous easy php 3.0
<?php

$fichier=fopen("texte3.txt","r");
while($ligne=fgets($fichier));
{
$words[]=$ligne;
}
fclose($fichier);
$word = 'ligne3';
if(in_array($word, $words)){
echo "le mot exite";
}
else{
echo "le mot n existe pas";
}
?> 
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
de toute façon le code ne générait pas d'erreur mais ne fonctionnait pas -_-
celui la marche vraiment :
<?php

$words=file("texte3.txt");
$word = 'ligne3';
if(in_array($word, $words)){
echo "le mot exite";
}
else{
echo "le mot n existe pas";
}
?> 
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
:o je viens de me rendre compte que avec in_array ça marche pas en fait sauf si le mot cherché est une ligne complète du fichier

voici encore une autre version

<?php

$words = file_get_contents('texte3.txt');
$word = 'ligne7';
if( strpos($words, $word) !== false ){
	echo "le mot existe";
}else{
	echo "le mot n'existe pas";
}

?>
0
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
j ai tester ce code est ca ne marche pas


<?php

$words=file("texte3.txt");
$word = 'ligne3';
if(in_array($word, $words)){
echo "le mot exite";
}
else{
echo "le mot n existe pas";
}
?>
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
encore plus simple :

<?php

$words = file_get_contents('texte3.txt');
$word = 'ligne7';
if(ereg($word,$words)){
echo "le mot existe";
}else{
echo "le mot n'existe pas";
}

?>
0
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
re bonjour

je voudrai savoir maintenant comment je peu faire pour que le code ecrit a la fin du fichier si le mot ne ce trouve pas dans le fichier



merci d'avance de votre aide
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
tu ajoute :


else
{
fopen("texte3.txt","a");
fputs($word);
}

0
layeures Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   3
 
re bonjour

<?php

$words = file_get_contents("texte3.txt");
$word = 'ligne4';
if( strpos($words, $word) !== false ){
echo "le mot existe";
}else{
echo "le mot n'existe pas";
fopen("texte3.txt","a");
fputs($word);
}

?>

le probleme avec ce code si qui m affiche un message d'erreur genre :

Warning: file_get_contents(texte3.txt): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\nouveau dossier (3)\testa.php on line 3
le mot n'existe pas
Warning: Wrong parameter count for fputs() in c:\program files\easyphp1-8\www\nouveau dossier (3)\testa.php on line 10

est aussi il y a un autre probleme c est qu il cree un autre fichier vide.
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
ben d'après lerreur le fichier texte3.txt n'esxiste pas
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
Warning: file_get_contents(texte3.txt): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\nouveau dossier (3)\testa.php on line 3 

pour éviter ça rajoute un test avec file_exists

Warning: Wrong parameter count for fputs() in c:\program files\easyphp1-8\www\nouveau dossier (3)\testa.php on line 10 

tu as oublié de regarder comment on utilise fputs ... -> https://www.php.net/manual/fr/function.fputs.php
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
la c'est ma faute pour fputs jé mi ca de tete sans regarder le menuel php
0