1

私は次のような文字列を持っています:

name="n e" content="12" icon="favicon.ico"

そのような配列としてそれを解析するための最良かつ最速の方法は何ですか?

Array
(
    [name] => "n e"
    [content] => "12"
    [icon] => "favicon.ico"
)
4

1 に答える 1

3

これは、preg_match_all()すべてのグループを取得しarray_combine()、最終的な配列を形成するために使用して、それを行う必要があります。

if (preg_match_all('/(\w+)="([^"]*)"/', $str, $matches)) {
    return array_combine($matches[1], $matches[2]);
} else {
    return array();
}

編集

この代替手段は、二重引用符の間にスペースがある場合に機能しなくなります。それ以外の場合も同様に機能します。

parse_str(str_replace(array(' ', '"'), array('&', ''), $s), $a);
return $a;
于 2012-10-03T10:22:21.470 に答える