Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1

    Manipolazione stringhe -> sono una schiappa

    Ciao a tutti,

    scusate la domanda da niubbio, me ne vergogno ma con la manipolazione stringhe sono davvero penoso e forse un po' pigro, lo devo ammettere.

    Allora, la mia stringa è di questo tipo:

    84040 Abatemarco, Salerno (Campania)

    Devo ricavare

    il cap

    la città

    la provincia

    la regione

    Io ho fatto così, lo so che fa schifo:

    Codice PHP:
                $entryzipCode substr($_REQUEST['cities'], 5);
                
    $firstComma   strpos($_REQUEST['cities'], ',');
                
    $firstGraph   strpos($_REQUEST['cities'], '(');
                
    $lastGraph    strpos($_REQUEST['cities'], ')');
                
    $entryCity    substr($_REQUEST['cities'], 6, ($firstComma 6));
                
    $entryDistricttrim(substr($_REQUEST['cities'], $firstComma 1$firstGraph - ($firstComma 1)));
                
    $entryRegiorn trim(substr($_REQUEST['cities'], $firstGraph 1$lastGraph - ($firstGraph 1))); 
    Mi dareste una dritta per ottimizzare, per favore?
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  2. #2
    Codice PHP:
    <?php
    $str 
    "84040 Abatemarco, Salerno (Campania)";
    $str str_replace(","""$str);
    $str str_replace("("""$str);
    $str str_replace(")"""$str);
    $array explode(" "$str);

    print_r($array);
    ?>

  3. #3
    Appunto!

    Molte grazie!

    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  4. #4
    Originariamente inviato da -demianlz-
    Codice PHP:
    <?php
    $str 
    "84040 Abatemarco, Salerno (Campania)";
    $str str_replace(","""$str);
    $str str_replace("("""$str);
    $str str_replace(")"""$str);
    $array explode(" "$str);

    print_r($array);
    ?>
    Riesumo, però con una stringa del genere non va mica bene:

    84040 Riva Del Fiore, Trento (Campania)

    Riva del Fiore deve rimanere un campo unico.

    Qualche consiglio per favore?
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    prova cosi, sto prendendo ora confidenza con le regex, quindi magari testala in un po' di casi e dimmi se ti funziona:

    codice:
    $stringa = "84040 Riva Del Fiore, Trento (Campania)"
    $regex = "/^(\d+)\s([\w\s]+),\s([\w\s]+)\(([\w\s]+)\)$/";
    
    preg_match($regex, $stringa, $matches);
    
    echo "<pre>";
    print_r($matches);
    echo "</pre>";
    ciao

  6. #6
    Originariamente inviato da gianiaz
    prova cosi, sto prendendo ora confidenza con le regex, quindi magari testala in un po' di casi e dimmi se ti funziona:

    codice:
    $stringa = "84040 Riva Del Fiore, Trento (Campania)"
    $regex = "/^(\d+)\s([\w\s]+),\s([\w\s]+)\(([\w\s]+)\)$/";
    
    preg_match($regex, $stringa, $matches);
    
    echo "<pre>";
    print_r($matches);
    echo "</pre>";
    ciao
    Ehi, ciao Gianaz, grazie per l'ascolto. Ti farò sapere in giornata.

    dAweb
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  7. #7
    Così, al volo, dai primi test sembra funzionare tutto.

    Array

    (

    [0] => 53017 Radda In Chianti, Siena (Toscana)

    [1] => 53017

    [2] => Radda In Chianti

    [3] => Siena

    [4] => Toscana

    )

    Non ho ben capito perché il primo elemento dell'array è la stringa completa, ma come detto sopra con regex e stringhe sono l'ultimo.
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    praticamente il primo indica tutta la stringa che soddisfa la regex (cioè ha il pattern come richiesto), gli altri elementi invece sono i gruppi tra tonde.

    ciao

  9. #9
    Un piccolissimo problemino riscontrato.

    Se qualcuno volesse approfittare della regola ed usarlo, come me appunto, per gestire città/province/regioni.

    Bisognerebbe aggiungere, tra i caratteri accettati, il trattino "-", ci sono regioni infatti come Trentino-Alto Adige Emilia-Romagna. Perlomeno sono identificate così nel mio db ottimizzato per le google map.

    Ora, do un'occhiata a come poter aggiungere il simbolo alla regex di Gianaz. Spero di non combinare guai.

    $regex = "/^(\d+)\s([\w\s]+),\s([\w\s]+)\(([\w\s-]+)\)$/";
    Salut
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    ^(\d+)\s([\w\s]+),\s([\w\s]+)\(([\w\s\-]+)\)$
    Nell'ultimo gruppo di parentesi ho aggiunto \- mettilo in tutti i gruppi di quadre in cui vuoi ammettere 1 o più caratteri di questo genere.

    ciao

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.