Besoin d'un tout petit coup de main PHP svp

Discussion dans 'Problèmes de référencement spécifiques à vos sites' créé par HawkEye, 14 Septembre 2005.

  1. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    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:
    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:
    $trigger = array("foo1","foo2");
    if(eregi("$trigger",$bar)) { action ;}
    
    L'un d'entre vous aurait-il une solution proche de ça ?

    Merci !
     
  2. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    il faut que tu mette également un tableau dans le deuxieme argument.

    Code:
    $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.
     
  3. Vell
    Vell WRInaute occasionnel
    Inscrit:
    5 Août 2005
    Messages:
    260
    J'aime reçus:
    0
    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 ? ;)
     
  4. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    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)
     
  5. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    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...
     
  6. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    pour le second tableau, tu fait un sizeof() du premier, et tu ajoute autant d'entrées que necessaire.

    Code:
    $i = 1;
    while ($i <= sizeof($tab)) {
    $tab2[] = $bar;
    }
     
  7. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    le cde de Vell est bien
     
  8. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    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...)
     
  9. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    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 ?)
     
  10. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    Tout à fait lisible :)
     
  11. Phix
    Phix WRInaute occasionnel
    Inscrit:
    15 Juin 2004
    Messages:
    334
    J'aime reçus:
    0
    Et pourquoi pas un simple:

    Code:
    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 :)
     
  12. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    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...
     
  13. jerome347
    jerome347 WRInaute occasionnel
    Inscrit:
    19 Mars 2004
    Messages:
    468
    J'aime reçus:
    0
    Sachant que eregi peut prendre des expressions régulières, tu peux tout simplement faire :

    Code:
    if(eregi("foo1|foo2", $bar)) { action; }
     
  14. pc07
    pc07 WRInaute discret
    Inscrit:
    10 Août 2004
    Messages:
    66
    J'aime reçus:
    0
    +1 avec jerome347, t'a juste a composer l'expression réguilière avec une boucle
     
  15. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    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...
     
  16. Vell
    Vell WRInaute occasionnel
    Inscrit:
    5 Août 2005
    Messages:
    260
    J'aime reçus:
    0
    Mais moi j'avais prévenu que c'était bien crade ;p
    C'était même voulu !
     
  17. mbaudry
    mbaudry Nouveau WRInaute
    Inscrit:
    14 Septembre 2005
    Messages:
    22
    J'aime reçus:
    0
    Sinon si c'est une question de rapidité du cpu il y a les fonctions pcre (issus de perl), en principe c'est plus rapide,
    celle qui pourrait te correspondre est preg_match, mais le motif de chaine est légèrement différent de celui de ereg fonction posix:
    if(preg_match("`(foo1|foo2)`", $bar)) { action; }
     
  18. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    d'accord mais le votre consomme aussi de la mémoire. en fin la solution dépend du volume. la construction d'une grande liste eregi ferait l'affaire mais toujours non optimisé, peut être une requête SQL à la base serait mieux (en mettant les mots interdits dans une tables). ça serait aussi facile à mantenir:
    select count(*) from mots
    where mot like serach
    on peut remplacer lire par une fonction expression régulière.
     
Chargement...
Similar Threads - Besoin coup PHP Forum Date
besoin d'un coup de pouce en langage php Développement d'un site Web ou d'une appli mobile 19 Août 2015
Besoin d'un petit coup de main en référencement Débuter en référencement 23 Avril 2020
Position qui fait le Yoyo, besoin d'un coup de main svp Problèmes de référencement spécifiques à vos sites 24 Septembre 2019
Besoin d'un coup de main redirection 301 https Demandes d'avis et de conseils sur vos sites 12 Octobre 2018
Besoin d'un petit coup de pouce : Amateurs de réseaux sociaux? Autres réseaux sociaux 30 Avril 2013
Besoin d'un sérieux coup de main :( Problèmes de référencement spécifiques à vos sites 10 Novembre 2010
Besoin d'un coup de main pour une redirection. Référencement Google 16 Juillet 2010
Besoin dun petit coup de main Débuter en référencement 3 Juin 2010
Mon url rewriting ne fonctionne pas, besoin d'un coup de main... URL Rewriting et .htaccess 19 Décembre 2009
Besoin d'un coup de pouce Problèmes de référencement spécifiques à vos sites 8 Décembre 2009
Besoin d'un coup de main pour corriger mon code URL Rewriting et .htaccess 18 Novembre 2009
Besoin d'un gros coup de pouce pour mettre en place des colonnes dans un menu CSS Développement d'un site Web ou d'une appli mobile 23 Juillet 2009
Besoin d'un coup de pouce ! [resolu] URL Rewriting et .htaccess 8 Décembre 2008
besoin coup de main merci URL Rewriting et .htaccess 5 Avril 2008
Besoin d'un tit coup de pouce pour redirection 301 massive Netlinking, backlinks, liens et redirections 19 Janvier 2008
besoin d' un petit coup de main sur namo web editor Développement d'un site Web ou d'une appli mobile 1 Avril 2007
Besoin d'un coup de pouce pour rendre un script valide W3c Développement d'un site Web ou d'une appli mobile 23 Novembre 2006
Besoin de vos conseils pour un coup de pub Débuter en référencement 17 Mai 2006
Forum IPB, besoin d'un coup de main svp... Administration d'un site Web 3 Décembre 2005
Regle rewritting, besoin d'un coup de pouce URL Rewriting et .htaccess 27 Juillet 2005