2012-03-06 5 views
0

Я получил следующий результат от службы.построить массив из строки

Выход:

OK: установить имя пользователя OK: установить пароль OK: установить состояние сервера эквайринг-сети OK: войдите в OK: GET-группы членами группы контакт-лист контакт 5551000008539 имя «Driver 2 "состояние автономной группы контакт-лист контакт 5551000008540 имя" Driver 3 "состояние автономная группа контакт-лист контакт 5551000008541 имя" драйвер 4 "состояние автономное состояние подключение client-own-id 5551000008535 client-own-id 0 client-own-id 5551000008535 состояние отключение входа запрещен auth-error client-own-id 0 состояние offline

Как я могу извлечь da ta в пользовательский массив, как и раньше?

Как я могу взорвать/вставить/преговать или что угодно в массив пользователей. как:

$users - Driver 2 => 5551000008539 
     Driver 3 => 5551000008540 
     Driver 4 => 5551000008541 
+0

символов новой строки после реализации «OK-х? –

+1

Возможно, вам нужно будет отправить точный формат входной строки (включая строки новой строки), чтобы получить правильный ответ. – rdlowrey

+0

Возможно, «:» является разделителем. Но мне нужно уточнить, прежде чем я попытаюсь ответить на это. – Graham

ответ

0

Попробуйте это (предполагая, что $s содержит вывод из нашей службы):

preg_match_all("/contact-list contact (\\d+) name \"(.*?)\"/", $s, $out, PREG_PATTERN_ORDER); 

И создать массив с именами, как ключи и номера в качестве значений:

$result = array_combine($out[2], $out[1]); 
+0

Предупреждение: array_combine() [function.array-combination]: Оба параметра должны иметь как минимум 1 элемент –

+0

присваивать '$ s = 'OK: установить имя пользователя OK: установить пароль OK: установить сеть получения состояния сервера OK: войти в систему ОК: get-group-members group контакт-лист контакт 5551000008539 имя «Driver 2» состояние автономная группа контакт-лист контакт 5551000008540 имя «Driver 3» состояние автономная группа контакт- list contact 5551000008541 имя «драйвер 4» состояние автономное состояние подключение клиент-собственный-идентификатор 5551000008535 client-own-id 0 client-own-id 5551000008535 состояние отключить вход запрещен auth-error client-own-id 0 состояние офлайн '; ' –

1
<?php 
$str = 'OK: set username OK: set password OK: set server state acquiring-network OK: sign-in OK: get-group-members group contact-list contact 5551000008539 name "Driver 2" state offline group contact-list contact 5551000008540 name "Driver 3" state offline group contact-list contact 5551000008541 name "Driver 4" state offline state connecting client-own-id 5551000008535 client-own-id 0 client-own-id 5551000008535 state disconnecting sign-in denied auth-error client-own-id 0 state offline'; 
preg_match_all('@contact (\d+) name "(.+?)"@', $str, $matches, PREG_SET_ORDER); 
print_r($matches); 
$array = array(); 
foreach($matches as $match) { 
    $array[$match[2]] = $match[1]; 
} 
print_r($array); 

Salvaging данные от $ спичек остается в качестве упражнения.

+0

только что получил 2 пустых массива .. Array() Array() –

Смежные вопросы