Шаблон для указанного персонажа - PullRequest
0 голосов
/ 28 марта 2012

Мне нужно извлечь имя из большого пакета данных.

$frame = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1,....

есть более 200-300 имен, которые я должен поместить в массив.

я пытался,

    preg_match_all('#\/"(.*)\/":1#',$frame,$imn);
print_r($imn);

но это не работает. Пожалуйста, помогите мне.

Спасибо

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Эти данные для меня выглядят как убогий JSON. Предполагая, что формат вашего кода такой же, как и выше, попробуйте это:

// Two pass approach to interpollate escape sequences correctly
$toJSON = '{"json":"{'.$frame.'}"}';
$firstPass = json_decode($toJSON, TRUE);
$secondPass = json_decode($firstPass['json'], TRUE);

// Just get the keys of the resulting array
$names = array_keys($secondPass);

print_r($names);
/*
  Array
  (
      [0] => Amy Dardomba
      [1] => Kisb Muj Lorence
      [2] => Apkio Ronald
      ...
  )
*/

Посмотри, как работает

0 голосов
/ 28 марта 2012
$input = '\"Amy Dardomba\":1,\"Kisb Muj Lorence\":1,\"Apkio Ronald\":1';
preg_match_all('#"([a-zA-Z\x20]+)"#', stripslashes($input), $m);

смотреть $m[1]

0 голосов
/ 28 марта 2012

\/ будет соответствовать / символу, но вы должны соответствовать \, поэтому используйте \\ вместо:

preg_match_all('#\\"(.*?)\\":1#',$frame,$imn);

Также добавлено ? для не жадного регулярного выражения.

...