strpos avec un array ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : strpos avec un array ?

Re: strpos avec un array ?

par sirakawa » 15 juil. 2011, 17:06

mouaff, je jetterais un oeil, car je ne suis pas encore borgne, sur la fonction
in_array()
kelle me samble bien répondre à la couestion posatée.
Et pour la question à 10000000000000000 euros qui n'est pas posée, j'ajouterai qu'il faut s efamiliariser avec les tableaux qui sont moins compliqués qu'on pourrait croire en lisant la doc. car les tableaux associatifs ou pas c'est la même chose, et c'est un apport de Pascal à l'informatique que de disposer de tableaux où on n'est pas tenu de se souvenir à qui correspond la ligne 321 et dans quel numéro de colonne se trouve le numéro de téléphone de cet individu
En effet :
$t = array();
$t[1] = "calvados";
$t[2] = "champgne";
$t[3] = "cognac";
ou
$t = array( 1=>"calvados", 2=>"champagne", 3=> "cognac");
sont équivalentes.
maintenant on peut raffiner:
$
livre_de_cave = array();
$livre_de_cave['calvados'][1] = "Delalain";
$livre_de_cave['calvados'][2] = "Magloire";
$livre_de_cave['calvados'][2] = "Tagloire";
and so on...
moi j'ai pour un autre but:
il s'agit d'individus à affecter à des groupes différents:
for ($id =1; $id < $nb_affectables; $id++)
$affectables[$id]['id'] = $id; // la ligne $id du tableau indique que l'id de l'élève $id est $id
$affectables[$id]['sexe'] = $sexe; // la ligne $id du tableau indique que le sexe de l'élève $id est $sexe
$affectables[$id]['affectation'] = 0; // la ligne $id du tableau indique que l'affectation de l'élève $id est 0 (pas encore affecté)
$affectables[$id]['nom'] = $nom;// la ligne $id du tableau indique que le de l'élève $id est $nom
endfor;
Complètement hors-sujet, mais je maintiens

Re: strpos avec un array ?

par Ryle » 15 juil. 2011, 11:54

Hello ! Effectivement, le deuxième argument de strpos ne peut pas être un tableau mais doit être une chaine (ou à défaut un nombre) ...

Il faudrait donc soit tester chacun de tes mots un par un (avec un flag pour savoir s'lis ont été trouvé ou non)
$chaine = 'Bonjour, je sais ma chaine est merdique mais c\'est un exemple ...';
$find = array('chaine', 'exemple', 'bouh');

$erreur = false; // par défaut il n'y a pas d'erreur
foreach ($find as $mot) { // pour chaque mot
  if (strpos($chaine, $mot)===false) { // on test
    $erreur = true; // si le mot n'est pas trouvé on consigne l'erreur
    break; // on quitte la boucle...
  }
}

if ($erreur) { // en cas d'erreur 
  ... 
}
else { // en cas de succès
  ...
}

strpos avec un array ?

par Hypnoze57 » 15 juil. 2011, 11:35

Bonjour a tous :) je me suis inscrit sur ce forum car j'ai un petit soucis et j’espère que vous m'aiderais a le résoudre :)

J'explique, mon code :
$chaine = 'Bonjour, je sais ma chaine est merdique mais c\'est un exemple ...';
$find = array('chaine', 'exemple', 'bouh');
$pos = strpos($chaine, $find);

if ($pos === false) {
	echo 'Aucun mot n\'apparais ...';
} else {
	echo 'un mot interdit apparais dans la chaine :)';
}
Mais comme j'aime pas trop la fonction array() et que j'arrive pas trop a l'utiliser ... J'ai une erreur c'est que même si le mot apparais bah il me met qu'il n'apparais pas :/

Hypnoze57.