Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313

    Estrarre numeri da una stringa

    Salve, devo fare un'importazione dati abbastanza complessa e ora mi sono trovato di fronte una stringa di questo genere
    codice:
    <rows><row attributo=""43"" /><row attributo=""24"" /><row attributo=""75"" /><row attributo=""21"" /><row attributo=""45"" /></rows>
    andiamo per grandi, questa stringa è presente in un file txt che mi presenta il seguente formato:

    codice:
    |64|ALCOT282BKITA|T.CELLULARE ALCATEL OT282 Senior Phone Black|001|001|001|002|005|003|ALC|"<rows><row attributo=""43"" /><row attributo=""24"" /><row attributo=""75"" /><row attributo=""21"" /><row attributo=""45"" /></rows>"|2014-03-28|19:53:00|

    ora quando eseguo explode ottengo questo :
    codice:
    Array (     [id] => 64     [Codice] => ALCOT282BKITA     [Descrizione] => T.CELLULARE ALCATEL OT282 Senior Phone Black     [Famiglia] => 001     [Gruppo] => 001     [Sottogruppo] => 001     [Categoria] => 002     [Classe] => 005     [Sottoclasse] => 003     [Marca] => ALC     [Attributi] => ""     [data] => 2014-03-28     [ora] => 19:53:00 )
    Di questa stringa a me interessano solo i numeri del resto non ho bisogno, sto provando a rimuovere le virgolette ma niente da fare ho sempre lo stesso risultato.

    Ecco il codice che sto usando:
    codice:
                  $array = $this->super_admin_model->real_escape('"<rows><row attributo=""43"" /><row attributo=""24"" /><row attributo=""75"" /><row attributo=""21"" /><row attributo=""45"" /></rows>');
                  print_r($array);
                  preg_match('!\d+!',$array,$result);
                  print_r($result);
    Dimenticavo la funzione $this->super_admin_model->real_escape() converte sia gli apici e gli apostrofi in & # 3 9 ; & # 3 4 ; , sto impazzendo da stamattina su questa cosa ma niente....
    Ultima modifica di sjpagan; 24-09-2014 a 13:20 Motivo: Mancata parte descrittiva

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Intanto dovresti usare preg_match_all(), altrimenti prendi solo la prima occorrenza di ciò che cerchi e le seguenti vengono ignorate.

    Quel print_r($array) nell'ultimo blocco di codice cosa stampa?

    Sicuro che vada bene usare ! (punto esclamativo) come delimitatore per la regexp? Io userei | (pipe) oppure /

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Con preg_match_all funziona benissimo.
    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

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 © 2026 vBulletin Solutions, Inc. All rights reserved.