-
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 :crycry:
Grazie anticipatamente
-
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...
-
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
-
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...
-
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 :)
-
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...