Page 1 sur 2

recherche caracteres tableau array

Posté : 01 sept. 2010, 14:54
par smiley
Bonjour, je ne sais pas comment faire pour trouver le caractère dans mon tableau ,
ça fonctionne normalement quand j'utilise un "array" prérempli , mais ca ne fait rien quand je le rempli avec un fichier texte ! La variable $texte est un imput type .

Code : Tout sélectionner

$caract_fr = array (); $handle = fopen('liste_francais.txt','r'); if($handle) { while (!feof($handle)) { $ligne = fgets($handle,4096); $caract_fr[] = $ligne; } fclose($handle); } //recherche tableau fr if(in_array($texte,$caract_fr)) { echo '<br>Trouvé',$texte; }
Question : Comment faire pour trouver le mot que je saisi et voir si il se trouve dans le tableau rempli par le fichier texte?
Merci d'avance parce que je galère ! :cry:

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 17:23
par smiley
personne ne sait?

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 17:32
par Aureusms
Utilise les expressions régulières et les fonctions associées de type preg (preg_match, preg_replace,...)
Exemple si tu recherche le mot "joujou" dans la variable $phrase tu mets :
if (preg_match('#joujou#',$phrase)
{
  echo 'trouvé';
}
else
{
  echo 'pas trouvé';
}

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 17:57
par stealth35
pour lire un fichier utilise file ou file_get_contents ça sera plus simple deja

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 20:14
par smiley
Le problème c'est que j'ai ça en utilisant preg_match et ça commence à me perturber :?

Code : Tout sélectionner

Warning: preg_match() expects parameter 2 to be string, array given in C:\wamp\www\php\test2.php on line 48
Ps : le premier parametre est aussi une variable

Code : Tout sélectionner

if(preg_match($texte,$caract_fr))

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 20:50
par smiley

Code : Tout sélectionner

$caract_fr = array ('probabilite','quota'','test'); //recherche tableau fr if(in_array($texte,$caract_fr)) { echo '<br>Trouvé',$texte;
comment tu ferais avec un fichier a charger pour obtenir la même chose ?

$caract_fr = explode("\n",file_get_contents("liste_francais.txt"));

et ensuite? :| :^o :^o

ça marche bien avec un array normal alors pourquoi pas avec fichier ! ! ! !

Re: recherche caracteres tableau array

Posté : 01 sept. 2010, 21:22
par smiley
Je vais essayer de faire autrement ou du moins d'y réfléchir , je crois avoir trouvé :P

Re: recherche caracteres tableau array

Posté : 02 sept. 2010, 09:19
par stealth35

Code : Tout sélectionner

$caract_fr = array ('probabilite','quota'','test'); //recherche tableau fr if(in_array($texte,$caract_fr)) { echo '<br>Trouvé',$texte;
comment tu ferais avec un fichier a charger pour obtenir la même chose ?

$caract_fr = explode("\n",file_get_contents("liste_francais.txt"));

et ensuite? :| :^o :^o

ça c'est la fonction file sa te fais direct un array, mais tu cherches a faire quoi exactement ?

ça marche bien avec un array normal alors pourquoi pas avec fichier ! ! ! !

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 13:31
par smiley
Bah c'est un peu tordu peut être ce que j'essaye de faire , je voudrais traduire un fichier texte a partir d'un autre fichier texte :roll:

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 13:41
par Smiley
Re et merci pour votre aide !

Bon là j'ai carréement une page blanche quand je fais ça et le pire c'est que je sais pas pourquoi? #-o

Code : Tout sélectionner

$tableau = file("liste_francais.txt"); if(is_array($tableau)) { if(in_array($texte,$tableau)) { echo '<br>Trouvé',$texte; //recherche de la cle fr du mot test $cle_fr = array_search($texte,$tableau); echo "La valeur $texte du tableau fr est la cle $cle_fr<br>"; } }

Pourtant c'est la même chose apparemment quand je met afficher le tableau avec un echo ça me met un Array !
pourtant avec un beeau print_r($tableau) je vois bien le contenu du fichier dans le tableau !?

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 13:54
par macgawel
Penses à utiliser des echo et des var_dump, ça aide au déboguage...
$tableau = file("liste_francais.txt");
var_dump($tableau);
echo '1';
if(is_array($tableau)) {
	echo '2'; 
	if(in_array($texte,$tableau)) {
		echo '<br>Trouvé',$texte;

		//recherche de la cle fr du mot test

		$cle_fr = array_search($texte,$tableau);

		echo "La valeur $texte du tableau fr est la cle $cle_fr<br>";
	}
	else echo 'pas in_array'; 
}
else echo 'pas is_array';
Profites-en pour réviser les fonctions que tu utilises.
Tu remarqueras dans le manuel un truc sympa sur file()
Retourne le fichier dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retours-chariot sont placés en fin de ligne. Si une erreur survient, file() retournera FALSE.

Note: Chaque ligne du tableau résultant inclura la fin de ligne, à moins que FILE_IGNORE_NEW_LINES ne soit utilisé, donc, vous avez toujours besoin d'utiliser la fonction rtrim() si vous ne voulez pas de fin de lignes.

Note: Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 14:23
par Smiley

Code : Tout sélectionner

$tableau = file('liste_francais.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); var_dump($tableau); if(is_array($tableau)) { echo'2'; if(in_array($texte,$tableau)) { echo '<br>Trouvé',$texte; //recherche de la cle fr du mot test $cle_fr = array_search($texte,$tableau); echo "La valeur $texte du tableau fr est la cle $cle_fr<br>"; } else echo 'pas in_array'; }
Pas compris
Je n'obtiens toujours pas ce que je cherche

j'ai bien le tableau grâce a var_dump et 1 2 pas in array !
pourtant le mot est bien dans l'array ?

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 14:37
par smiley
Peut être un truc avec rtrim , espace_blancs?
je cherche !

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 14:53
par smiley
j'ai trouvé merci macgawel ! =D>

Re: recherche caracteres tableau array

Posté : 03 sept. 2010, 18:42
par Invité
J'ai modifié un truc et ça fonctionne plus si quelqu'un peut me dire pourquoi il retrouve pas ce mot !

Code : Tout sélectionner

<?php //affich dans textarea if(isset($_POST['texte'])) { $texte = $_POST['texte']; if(isset($_POST['submit'])) { switch($_POST['submit']) { case 'anglais': $anglais = $_POST['submit']; //tableau mots fr $tableau = file("liste_francais.txt"); $chaine = implode('*',$tableau); rtrim($chaine); $tab = explode (',',$chaine); if(is_array($tab)) { echo '2'; if(in_array($texte,$tab)) { echo '<br>Trouvé',$texte; //recherche de la cle fr du mot test $cle_fr = array_search($texte,$tab); echo "La valeur $texte du tableau fr est la cle $cle_fr<br>"; } else echo 'pas in_array'; } else echo 'pas is_array'; break; } } }
Merci parce que ça fait 3 heures que je cherche et ça me gonfle ! Pourquoi il m'affiche pas in array ! grrrrr :evil: