2012-04-12 15 views
1

Ich mag wäre in der Lage sein, die folgenden Daten zu analysieren PHP:Parsing von Daten aus Zeichenfolge in PHP

$string = "<![CDATA[<div><b>Color:</b> Blue</div> 
<div><b>Number:</b> 5</div> 
<div><b>Month:</b> January</div>]]>"; 

in einer Anordnung wie:

Array 
(
    [Color] = Blue 
    [Number] = 5 
    [Month] = January 
) 

I preg_match zu verwenden versucht, zu extrahieren, die Daten dazwischen würden jedoch keine Übereinstimmungen erzeugen.

preg_match_all("/\[CDATA\[(.*?)\]]/", $string, $result); 

Ich komme nicht über diesen Punkt hinaus. Jede Hilfe wäre willkommen.

+0

Zwei Dinge, warum die '(. *?)' A 'hat?'. und warum bist du nicht ']' in '\]]' entkommen? – hjpotter92

Antwort

1
$result=array(); 
$arr = explode("\n", strip_tags(substr($string,9, strlen($string)-12))); 
foreach($arr as $val){ 
    $tmp = explode(':',$val); 
    $result[$tmp[0]] = $tmp[1]; 
} 

(In Schecks, trimmt, Code-Stil und so auf sich selbst)

+0

Sie möchten wahrscheinlich die ' Spudley

+0

@Spudley das ist warum es 'substr()' –

+0

Das ist großartig. Danke vielmals. – Kermit