Besoin d'un tout petit coup de main PHP svp

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Besoin d'un tout petit coup de main PHP svp

Message le Mer Sep 14, 2005 15:00

Salut à tous.

Je cherche à vérifier si une série de caractères (appelons-la "foo") fait partie d'une variable appelée $bar, auquel cas j'effectue une action...

pour l'instant j'utilise le code suivant:
Code: Tout sélectionner
if(eregi("foo",$bar)) { action ;}


Je voudrais pouvoir définir une série de "foo" qui seraient tous déclencheurs de cette action; pour ce faire je pensais définir une array juste avant, contenant les "foo", mais le code suivant ne fonctionne pas...

Code: Tout sélectionner
$trigger = array("foo1","foo2");
if(eregi("$trigger",$bar)) { action ;}


L'un d'entre vous aurait-il une solution proche de ça ?

Merci !


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Message le Mer Sep 14, 2005 15:03

il faut que tu mette également un tableau dans le deuxieme argument.

Code: Tout sélectionner
$trigger = array("foo1","foo2");
$trigger2 = array($bar, $bar);
if(eregi("$trigger", $trigger2)) { action ;}

oui, c'est crade, mais je vois pas d'autres solutions comme ca.

Vell
WRInaute impliqué
WRInaute impliqué
 
Messages: 282
Inscription: Ven Aoû 05, 2005 0:09

Message le Mer Sep 14, 2005 15:05

La tentation était trop forte, le mot crade m'a interpellé :lol:

$Chaine='Salut truc bidule, blablabla';
$Mots=array('truc','bidule');
$Remplacement='machin');

foreach($Mots as $n=>$mot) {
str_replace($mot,$Remplacement,$Chaine);
}

Franchement, à coté de ça, le eregi(); passe tout seul non ? ;)


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Message le Mer Sep 14, 2005 15:11

oui Vell, mais tu appelle autant de fois eregi qu'il y a d'entrées dans le tableau.

en conséquent, tu consomme des ressources pour rien.
la, ca va parce que tu n'a que peu d'entrées, mais mon fidele serviteur HawkEye_TpfH (j'ai changé mon avatar hein) n'a pas précisé le nombre d'entrées qu'il aura par la suite.
si il en a des centaines, voir des milliers, ca consomme du cpu pour rien (meme si il en a peu, mais ca se verra moins)


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Message le Mer Sep 14, 2005 15:25

Bien vu, Ô Maître-que-je-reconnais-à-présent-qu'il-ne-masque-plus-son-visage-dans-la-brume...

Effectivement, la liste sera vite longue puisque l'objectif est de rendre l'annuaire présent dans mon [www] complètement "child proof" (virer toute possibilité de rechercher f*ck, p*rn, inc*st et autres termes du style,...)

Je vais déjà tenter ta solution, on va voir ce que ça donne... Le code crade, je connais de toutes façons (un site dirigé par une et une seule page, ça peut pas être propret hein... :mrgreen: mais bon, quand c'est ta propre crasse, t'es bien dedans :mrgreen:)

Si d'autres ont une idée...
Dernière édition par HawkEye le Mer Sep 14, 2005 15:28, édité 1 fois.


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Message le Mer Sep 14, 2005 15:27

pour le second tableau, tu fait un sizeof() du premier, et tu ajoute autant d'entrées que necessaire.

Code: Tout sélectionner
$i = 1;
while ($i <= sizeof($tab)) {
$tab2[] = $bar;
}

nodom
WRInaute impliqué
WRInaute impliqué
 
Messages: 316
Inscription: Sam Jan 15, 2005 17:26

Message le Mer Sep 14, 2005 15:43

le cde de Vell est bien


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Message le Mer Sep 14, 2005 15:48

Bon ben je crois que c'est la solution KaZhaR #1 qui sera appliquée, même si elle est crade, parceque l'autre, mon serveur fait "SCKROÏNCH"...

(Et comme c'est gracieusement prêté par un ami, je vais éviter de lui flamber...)


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Message le Mer Sep 14, 2005 15:49

oui nodom, il fonctionnera, je suis tout à fait daccord.
cependant, il consommera plus de cpu que le mien étant donné qu'il appelle autant de fois la fonction eregi qu'il y a de mots, soit des milliers de fois.

ce n'est donc pas le plus optimisé (ce que j'ai écrit plus haut est bien affiché, et lisible en français au moins ?)


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Message le Mer Sep 14, 2005 15:52

Tout à fait lisible :)


Phix
WRInaute impliqué
WRInaute impliqué
 
Messages: 420
Inscription: Mar Juin 15, 2004 22:05

Message le Mer Sep 14, 2005 15:55

Et pourquoi pas un simple:

Code: Tout sélectionner
in_array($bar, $trigger)


sachant que $trigger peut être un tableau. Retourne un booléen si la valeur est contenue dans le tableau.

Ca c'est une fonction fournie avec une bouteille de Mr Propre, contre le code crade :)


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Message le Mer Sep 14, 2005 16:06

Ahaaaaa...

attends j'essaye...

[edit]
euh... non en fait... car dans ce cas, une recherche sur le terme "f¨ck" serait bloquée, mais pas une recherche sur le terme "f¨uck cows"...

'tain c fumant ce truc...


jerome347
WRInaute passionné
WRInaute passionné
 
Messages: 573
Inscription: Ven Mar 19, 2004 13:09

Message le Mer Sep 14, 2005 16:12

Sachant que eregi peut prendre des expressions régulières, tu peux tout simplement faire :

Code: Tout sélectionner
if(eregi("foo1|foo2", $bar)) { action; }

pc07
WRInaute discret
WRInaute discret
 
Messages: 97
Inscription: Mar Aoû 10, 2004 9:52

Message le Mer Sep 14, 2005 16:23

+1 avec jerome347, t'a juste a composer l'expression réguilière avec une boucle


HawkEye
Modérateur
Modérateur
 
Messages: 15040
Inscription: Lun Fév 23, 2004 12:33

Message le Mer Sep 14, 2005 16:25

Bien vu jerome347, ça fonctionne, c'est propre et c'est facile.

Merci beaucoup !

(aux autres aussi!)

maintenant si tu cherches "f*uck" par exemple, c'est redirigé vers une page de blocage, c'est tout bon...

Besoin d'un tout petit coup de main PHP svp

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités