2015-09-21 3 views
0

Привет Я использую WHMCS Апи я получаю ответ в формате JSON, как этотУдалить строки Перед Json Response Body Php

string 'userhowhigh83{"result":"success","orderid":787,"productids":"785","addonids":"","domainids":"","invoiceid":"766"}' (length=113) 

я получаю ответ правильно с API, но это также дает мне строку ' userhowhigh83 ', где «howhigh83» - это имя пользователя, а «user» - статический, но когда я декодирую результат json, он дает мне null. Я зарегистрировался в онлайн-json-декодере, когда удаляю «userhowhigh83», он будет работать нормально. Как я могу удалить это до тела ответа json.

+0

это не действует, если JSON он строку без кавычек в начале и json_decode возвращения s null, если он терпит неудачу. Проверьте эту функцию: http://php.net/manual/en/function.json-last-error-msg.php, чтобы узнать, произошла ли ошибка. – enrey

ответ

0

Если вы не можете получить строку в лучшей форме из вашего API, вы всегда можете использовать подстроку на вашей строки, чтобы избавиться от «userhowhigh83»:

$string = substr($string , strpos($string , "{")); 
0

Это будет делать, а также:

list($username, $jsonData) = explode('{', $json); 
echo '{' . $jsonData; 
echo $username; 

Другой подход будет:

preg_match('/{.*?}/', $json, $matches); 
echo $matches[0]; 
+0

Проблема вашего первого подхода заключается в том, что для более крупного строкового объекта JSON у вас может быть несколько «{». Но для этой струны все в порядке :-) –