Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273

    Confronto fra un array e una stringa

    Ciao,

    ho un array contententi una serie di user agent (es. MozillaFirefox,MSIE6,MSIE5,ecc.).

    Ho bisogno di confrontare quest'array con una stringa come per esempio questa:

    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

    Mi servirebbe sapere quale elemento dell'array è presente nella stringa.

    Come si può fare? esiste qualche funzione specifica o mi devo affidare ad un for?

    Grazie
    Pao

  2. #2
    http://it2.php.net/manual/it/function.array-search.php

    ricordati di usare l'operatore === come è scritto nel manuale

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    Potresti fare un ciclo per ogni elemento dell'array e poi usare l'eregi per i confronti.
    es.:
    codice:
    for ($i=0; $i<$lunghezzaArray; $i++){
    if (eregi($userAgent[$i],$stringa))
      fai qualcosa
    else
      boh .. dovrà fare altro o continuare il ciclo
    }
    ciao
    gnegno

  4. #4
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Codice PHP:
      $spider=array("Yahoo! Slurp","msnbot/","Googlebot/","Gigabot/","ia_archiver");

      
    $user_agent="Mozilla/5.0 (compatible; Yahoo! Slurp; [url]http://help.yahoo.com/help/us/ysearch/slurp[/url])"
    Ora, come vedete, nell'useragent il nome dello spider è posizionato al centro (o a volte all'inizio). Come faccio ad usare l'array_search per il mio scopo?

    Non c'è modo per evitare il ciclo?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    Senza ciclo non so... prova a dare un occhio a queste funzioni che sono per le espressioni regolari:

    http://it.php.net/manual/it/function.ereg.php
    http://it.php.net/manual/it/function.preg-match.php
    http://it.php.net/manual/it/function.eregi.php

    oltre a quello del ciclo non ti so fare altri esempi perchè non sono molto pratico espressioni regolari ... ma forse se non erro per quelle c'era anche una pillola

    ciao

  6. #6
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    stavo pensando anche io alle espressioni regolari.

    Il ciclo sembra però necessario perchè nessuna preg permette di usare un array.

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da PaoDJ
    stavo pensando anche io alle espressioni regolari.

    Il ciclo sembra però necessario perchè nessuna preg permette di usare un array.
    preg_replace ti permette di usare un'array come chiave di ricerca ed uno come chiave di sostituti:
    http://it.php.net/preg_replace
    think simple think ringo

  8. #8
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    si potrebbe fare una cosa del tipo:

    sostituisci tutti i possibili user agent con "" e poi alla fine controlla la stringa finale.

    Se è uguale alla precedente non è un user agent conosciuto, altrimenti lo è.

    E' una soluzione migliore o peggiore di un for?
    Credo migliore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.