Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    suddividere una stringa con le espressioni regolari

    ciao a tutti! io ho una stringa così formattata:

    $str = '

    <option value="ag">Agrigento</option>
    <option value="al">Alessandria</option>
    <option value="an">Ancona</option>
    <option value="ao">Aosta</option>
    <option value="ar">Arezzo</option>
    <option value="ap">Ascoli Piceno</option>
    <option value="at">Asti</option>
    <option value="av">Avellino</option>
    <option value="ba">Bari</option>
    <option value="bl">Belluno</option>';


    devo poter estrapolare il value e la relativa stringa, quindi ad esempio ag e Agrigento, ma sto provando diverse espressioni regolari, sia con preg_split che il più semplice split ma non ci riesco...o meglio con split sono riuscito ad ottenere un array di un unico elemento che contiene le stringhe Agrigento Alessandria etc...

    mentre io vorrei ottenere un elemento array che abbia come chiave la sigla e come valore proprio la stringa della provincia...

    poi devo scorrere l'array e inserire tutto in un db, ma per questo non c'è problema...il problema è appunto il primo passo.


    qualcuno riesce a darmi una mano?


    grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $str = '
    
    <option value="ag">Agrigento</option>
    <option value="al">Alessandria</option>
    <option value="an">Ancona</option>
    <option value="ao">Aosta</option>
    <option value="ar">Arezzo</option>
    <option value="ap">Ascoli Piceno</option>
    <option value="at">Asti</option>
    <option value="av">Avellino</option>
    <option value="ba">Bari</option>
    <option value="bl">Belluno</option>'; 
    
    preg_match_all( '#<option value="(.*)">(.*)</option>#U', $str, $ris );
    
    for( $i = 0, $j = count( $ris[1] ); $i < $j ; $i++ )
    {
    	$valori[$ris[1][$i]] = $ris[2][$i];
    }
    print_r( $valori );

    think simple think ringo

  3. #3
    sei un grande!!!!





    grazie mille!!!!!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi fare cosi

    codice:
    <?php
    $str = '
    <option value="ag">Agrigento</option> 
    <option value="al">Alessandria</option> 
    <option value="an">Ancona</option> 
    <option value="ao">Aosta</option> 
    <option value="ar">Arezzo</option> 
    <option value="ap">Ascoli Piceno</option> 
    <option value="at">Asti</option> 
    <option value="av">Avellino</option> 
    <option value="ba">Bari</option> 
    <option value="bl">Belluno</option>'; 
    
    $pattern = "|<option[[:space:]]+value=\"([^\"]+)\"[[:space:]]*>([^<]+)<\/option>|";
    preg_match_all($pattern,$str,$regs);
    print_r($regs);
    ?>
    l'array $regs[1] contiene i valori e $regs[2] i testi.

    codice:
        [1] => Array
            (
                [0] => ag
                [1] => al
                [2] => an
                [3] => ao
                [4] => ar
                [5] => ap
                [6] => at
                [7] => av
                [8] => ba
                [9] => bl
            )
    
        [2] => Array
            (
                [0] => Agrigento
                [1] => Alessandria
                [2] => Ancona
                [3] => Aosta
                [4] => Arezzo
                [5] => Ascoli Piceno
                [6] => Asti
                [7] => Avellino
                [8] => Bari
                [9] => Belluno
            )
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    grazie mille anche a te!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.