Visualizzazione dei risultati da 1 a 4 su 4

Discussione: che sia strpos?

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322

    che sia strpos?

    Ho un paio di questioni che non mi tornano..
    Riguardo al seguente codice

    Codice PHP:
    $srv = $_SERVER["HTTP_USER_AGENT"];
         $var=file('agent.txt');
         for($i=0;$i<count($var);$i++) {
           $var[$i]=explode(":",$var[$i]);
           if (strpos($srv,$var[$i][0])) {
             if (empty($os)) { $os = $var[$i][1]; }
             $browser = $var[$i][1];
           }
         }
         echo "Stai navigando con ".$browser;
      ?>

      <? echo "Sistema operativo ".$os?>
    Praticamente dopo aver ricavato i dati con HTTP_USER_AGENT, li confronto con un .txt che copio qui di seguito, in parte..

    Windows NT 5.1:Windows XP
    Windows NT 5.0:Windows 2000
    Windows NT 4.90:Windows ME
    Win95:Windows 95
    MSIE:Internet Explorer
    Firefox:FireFox
    Lynx:Lynx
    Opera:Opera

    In base a cosa contiene $server (che poi risulta essere quello prima dei : nel file di testo), imposto inizialmente il $os con il valore dopo i :, e successivamente il browser utilizzato con lo stesso metodo.
    Il tutto funziona con IE, mentre con Opera inspiegabilmente... almeno x me, quando ricerca il testo "Opera" nel .txt non lo trova.. se modifico il txt in

    pera:Opera
    funziona!

    L'altro inghippo è il dover mettere
    per andare a capo.. perchè ho provato inserendo \n ma non c'è verso.. lo spazio me lo mette in fondo al codice php...

  2. #2
    Molto semplice, prova in questo modo.

    Codice PHP:
    if (strpos($srv,$var[$i][0]) !== false//si, è un punto esclamativo e 2 uguali 
    Dovrebbe funzionare anche se metti la parola intera.
    Antonio Correnti
    www.resetstudio.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322
    Troppo gentile, ma come mai a me nn funzionava?

    E per quanto riguarda i \n da mettere al posto dei
    mi sai aiutare?

  4. #4
    Codice PHP:
    <?php

    $srv 
    $_SERVER["HTTP_USER_AGENT"];
         
    $var=file('agent.txt');
         for(
    $i=0;$i<count($var);$i++) {
           
    $var[$i]=explode(":",$var[$i]);
           if (
    strpos($srv,$var[$i][0]) !== false) {
             if (empty(
    $os)) { $os $var[$i][1]; }
             
    $browser $var[$i][1];
           }
         }
         echo 
    "Stai navigando con $browser 
     Sistema operativo 
    $os 
    "
    ;
     
    ?>
    Così dovrebbe funzionare.

    Per quanto riguarda strpos ti cito php.net alla pagina http://it2.php.net/manual/it/function.strpos.php

    Questa funzione può restituire il Booleano FALSE, ma può anche restituire un valore non-Booleano valutato come FALSE, come ad esempio 0 o "". Per favore fare riferimento alla sezione Booleans per maggiori informazioni. Usare l'operatore === per controllare il valore restituito da questa funzione.
    spero possa essere utile.
    Antonio Correnti
    www.resetstudio.it

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.