Visualizzazione dei risultati da 1 a 7 su 7

Discussione: explode su array

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    explode su array

    codice:
    # lista.txt
    1|mela||||||||||||||||||||||
    2|arancia||||||||||||||||||||||
    3|fragola||||||||||||||||||||||
    Codice PHP:
    # prova.php
    <?php
    $file
    =file('lista.txt');
    $new_file=implode('|'$file);
    $explode=explode('|'$new_file);

    $i=1;
    while(
    $i<count($explode))
    {
    if ( 
    $explode[$i] == 'arancia' )
     {
    $user $explode[$i]; break;}
     else{
     
    $i$i24;
     }
     }
     
     print 
    $user;

    ?>
    C'è un modo per evitare di fare implode sulla $file e dopo explode su $new_file?

    Anche il ciclo, si può evitare di fare questo "casino" ?

  2. #2
    Puoi utilizzare file per caricare il contenuto in un array, poi ciclare per l'array ed utilizzare un'espressione regolare o le funzioni di manipolazione delle stringhe per estrarre l'etichetta su cui fai il controllo.

    In alternativa puoi utilizzare fopen/fgets se il file è molto grande.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da filippo.toso
    Puoi utilizzare file per caricare il contenuto in un array, poi ciclare per l'array ed utilizzare un'espressione regolare o le funzioni di manipolazione delle stringhe per estrarre l'etichetta su cui fai il controllo.

    In alternativa puoi utilizzare fopen/fgets se il file è molto grande.
    si però c'è il rischio che accada una cosa del genere:

    codice:
    # lista.txt
    1|primo_nome_che_non_si_ripete_mai_nella_2°_cella||||||||||||||||||||||
    2|secondo||||||||||||||||||||||
    3|terzo|||||||||secondo|||||||||||||
    dato che nella 2° cella i nomi devono essere tutti diversi però in quelle successive il nome potrebbe ripetersi, ecco perchè metto i + 24 ( credo tu l'avessi gia capito da solo ).

    Quindi utilizzando fopen/fgets sarebbe possibile fare ciò evitando il problema che ho accennato?
    aspetto tua risposta.
    ciao

  4. #4
    Entrambe le soluzioni indicate permettono di ottenere il risultato che chiedi.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Codice PHP:
    $handle fopen("lista.txt""r");
    while (!
    feof($handle)) {
        
    $buffer fgets($handle262144);
        
    $explode=explode('|'$buffer);
        
    /* if ( ... ) [ etc ] */
    }
    fclose($handle); 
    è questo quello che intendevi?

  6. #6
    No, "utilizzare un'espressione regolare o le funzioni di manipolazione delle stringhe per estrarre l'etichetta su cui fai il controllo".

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da filippo.toso
    No, "utilizzare un'espressione regolare o le funzioni di manipolazione delle stringhe per estrarre l'etichetta su cui fai il controllo".
    :master: ma quella con il fopen/fgets non era la seconda alternativa?
    p.s. cmq quella da me postata funziona.

    un aiutino? la prima alternativa intendi usare una regex per estrarre |arancia|, ma con la regex la funzione di manipolazione la devo usare :

    p.s. a me interessa il metodo in cui ottengo i dati con il più breve tempo possibile.

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.