IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Recherche d'une portion de chaîne dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Recherche d'une portion de chaîne dans un tableau
    Bonjour,

    soit un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	$origine_bot = array ( 'bot', 'crawl', 'spider');
    Comment tester les chaines "crawl-66-249-66-211.googlebot.com" ou "msnbot-157-55-39-187.search.msn.com" ou "87-250-224-73.spider.yandex.com" pour être sûr de les trouver mais sans faire une boucle etc...
    Quand c'est une chaîne complète j'utilise "in_array" mais là c'est des portions de chaîne, du coup je ne sais plus quelle fonction peut m'aider, ni même si elle existe...

    Merci de vos lumières, j'ai lâché la programmation depuis quelques années

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    pourquoi : "sans faire une boucle" ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 417
    Points : 834
    Points
    834
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $machaine = 'unechainequelconque';
    $mesmots = ['un', 'deux', 'trois'];
    foreach($mesmots as $mot)
        if(strpos($machaine, $mot) !== false)
            echo "$mot trouvé\n";
    ?>
    Foreach est une boucle. Ça me parait difficle de s'en passer.

  4. #4
    Membre actif Avatar de Trehinos
    Homme Profil pro
    Analyste développeur PHP
    Inscrit en
    Novembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste développeur PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 99
    Points : 229
    Points
    229
    Par défaut
    Sans boucle, je propose :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $bots = implode('|', ['bot', 'crawl', 'spider']);
     
    $is_bot = preg_match("#{$bots}#", $str) > 0;

    $str est la chaîne à comparer.


    Mais si vous avez "lâché la programmation", il vaut mieux que vous écriviez un code que vous pouvez lire, comprendre et maintenir facilement, quitte à écrire une boucle.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Quand je dis que j'ai lâché la programmation ça veut dire que je ne regarde plus trop les nouveautés de php depuis 3 ou 4 ans, et que j'en suis resté à la programmation pas objet du tout...

    Je disais pas de boucle c'était pour éviter d'alourdir mon script.
    C'est un script perso qui va scruter des logs que je suis fait sur un site Wordpress et quand je regarde les logs j'aime bien voir de suite les vraies visites, c'est à dire cerner tout ce qui n'est pas un humain (d'où les "spider etc") mais aussi trier par IP par exemple et éliminer toutes les ip qui visitent "une page par seconde" par exemple, et peut être aussi encore d'autres critères qui me permettront de ne regarder que l'essentiel.

    Mon tableau est constitué de boucles dans des boucles dans des boucles, donc je me disais naïvement que moins j'en mettais plus propre se serait ! Quand j'ai commencé la programmation ma première machine avait 16k de ram et un lecteur de disquettes de 114k, mon bon monsieur, donc j'ai appris à être radin avec les ressources, mais si c'est plus trop la mode actuellement.

    Merci de vos piste je teste ça dès demain...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Points : 25
    Points
    25
    Par défaut Recours aux expressions régulières
    Si vous ne voulez pas utiliser les boucles je ne vous conseille qu'une seule chose : d'aller revoir la notion d'expression régulière avec les fonctions (preg_match). Vous allez décrire et récupérer les expressions dont lesquels vous désirer extirper ...

Discussions similaires

  1. [AC-2003] Rechercher/Supprimer une portion de texte dans une chaîne de texte
    Par elgordopresto dans le forum Access
    Réponses: 6
    Dernier message: 22/01/2015, 14h15
  2. Réponses: 1
    Dernier message: 27/11/2014, 21h49
  3. Réponses: 3
    Dernier message: 10/01/2012, 10h04
  4. [RegEx] Extraction d'une portion de chaîne dans une url
    Par Torgar dans le forum Langage
    Réponses: 12
    Dernier message: 09/12/2011, 16h33
  5. Extraire d'une portion de chaîne dans SELECT d'une requête
    Par Anne1969 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 16/03/2006, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo