Visualizzazione risultati 1 fino 6 di 6

Discussione: Espressioni regolari

  1. #1
    Guest

    Predefinito Espressioni regolari

    Salve, avrei bisogno di una manina con le espressioni regolari che sono un mattone

    io su un file di testo ho diverse stringhe di questo tipo:
    Codice:
    "id":39246,"level":200,"name":"3Amulet of Autopsy","reqlevel":80,"slot":2,"slotbak":2,"source":[2],"sourcemore":[{"dd":1,"n":"Heigan the Unclean","t":1,"ti":15936,"z":3456}],"subclass":-3,modes:{"mode":8,"4":{"count":4122,"outof":41476},"8":{"count":4116,"outof":21941}},count:4122,stack:[1,1]},
    e avrei la necessità di ricavarmi da tutte le stringhe presenti nel file il valore di 'id','stack'(i due valori nelle parentesi quadre) e il primo count e outof se possibile il problema è che non riesco a creare un'espressione regolare in grado di trovare quello che cerco....help me
    Grazie anticipatamente
    Ultima modifica di furion : 13-07-2010 alle ore 20.05.10

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Provo a suggerirti un altro approccio: quello che hai scritto sembra (quasi, bisogna fare una piccola aggiunta...) una notazione JSON, per la qualche in PHP (solo nella versione 5, però...) esistono dei metodi appositi di conversione:
    Codice PHP:
    // posto che $line sia la linea del file come l'hai riportata qui sopra
    $json = json_decode ('{' . $line . '}');
    Con il tuo esempio, il risultato dovrebbe equivalente a qualcosa del genere:
    Codice PHP:
    $json = array (
    'id' => 39246,
    'level' => 200,
    'name' => '3Amulet of Autopsy',
    'reqlevel' => 80,
    'slot' => 2,
    'slotbak' => 2,
    'source' => array (
    0 => 2,
    ),
    'sourcemore' => array (
    0 => array (
    'dd' => 1,
    'n' => 'Heigan the Unclean',
    't' => 1,
    'ti' => 15936,
    'z' => 3456,
    ),
    ),
    'subclass' => -3,
    'modes' => array (
    'mode' => 8,
    '4' => array (
    'count' => 4122,
    'outof' => 41476,
    ),
    '8' => array (
    'count' => 4116,
    'outof' => 21941,
    ),
    ),
    'count' => 4122,
    'stack' => array (
    0 => 1,
    1 => 1,
    ),
    );
    dal quale puoi "facilmente" ricavare i valori che ti servono...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Ti ringrazio per la risposta :) ma avrei una domanda riguardo al codice che mi hai postato: con quello posso ricavarmi i valori di id etc senza conoscerli? perchè vedo che tu li ha scritti vicino le variabili :S
    P.S: qui c'è la pagina completa se serve http://furion.altervista.org/drop.txt ->tasto dx->html
    Ultima modifica di furion : 14-07-2010 alle ore 11.01.49

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Io nel scrivere il risultato sopra ho semplicemente "trasposto" la tua riga nell'inizializzazione PHP equivalente. Quindi, se la linea del file che leggi lo contiene, l'ID può essere letto senza problemi.

    L'unica difficoltà, che prima non mi hai accennato, è isolare le righe del file... perché per passare da json_decode è necessario avere del codice JSON "puro".

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Ma su altervista il json_decode funziona? perchè usando il codice che mi hai passato mi esce

    Fatal error: Call to undefined function: json_decode() in /membri2/furion/prova3.php on line 3

    Ah poi a cosa ti riferivi nello specifico quando parlavi delle difficoltà etc?
    Grazie ancora :)

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Hai abilitato PHP 5? Perché a me JSON risulta attivo: http://dementialsite.altervista.org/phpinfo.php (cerca "json", dovresti trovare il supporto abilitato).

    La difficoltà a cui mi riferivo prima è il fatto che json_decode richiede come parametro una stringa in formato JSON, e null'altro. Nel post #2 pensavo che tu avessi a che fare con un file costituito da linee esclusivamente di quel tipo, a cui sarebbe bastato aggiungere un paio di parentesi graffe per ottenere una stringa JSON-valida. Poi però mi mostri il file com'è in realtà, ed è completamente diverso da quello che pensavo: la funzione json_decode può ancora funzionare, a patto che però prima individui correttamente (e filtri via il resto) i singoli oggetti JSON da convertire...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •