2015-12-09 2 views
1

Я использую API WhatsApp со ссылкойКак хранить WhatsApp PHP ответа API в переменной

https://github.com/WHAnonymous/Chat-API/wiki/WhatsAPI-Documentation

Из этого урока я использую следующий код, чтобы получить сообщения:

$username = $get_list['userid']; 
    $password = $get_list['password']; 
    $nickname = ''; 
    $debug = "false"; 

    $w = new WhatsProt($username, $nickname, $debug); 
    try { 
     $w->connect(); 
     $w->loginWithPassword($password); 
     $w->sendMessage($username , ''); 
     $s = $w->pollMessage(); 
    } catch (Exception $e) { 
     echo "Sorry ". $e->getMessage(); 
    } 

Я получаю сообщения следующим образом:

tx <stream:features> 
tx <readreceipts></readreceipts> 
tx <groups_v2></groups_v2> 
tx <privacy></privacy> 
tx <presence></presence> 
tx </stream:features> 

tx <auth mechanism="WAUTH-2" user="9195666669">����9195666669��/oNz|$%L�A#u)�1449637609</auth> 

rx <start from="s.whatsapp.net"></start> 

rx <stream:features></stream:features> 

rx <challenge>h�.� �z�It���_�*`�P</challenge> 

tx <response>����֖G�����C�NJ�qFz�o� #��NCve</response> 

rx <success t="1449637762" props="4" kind="free" status="active" creation="1449574308" expiration="1481110308">Ԕ��F��>����(�]I�</success> 

tx <presence name=""></presence> 

tx <message to="[email protected]" type="text" id="458GQvvffv1so0" t="1449637610" notify=""> 
tx <body></body> 
tx </message> 

rx <ib from="s.whatsapp.net"> 
rx <offline count="0"></offline> 
rx </ib> 

rx <presence from="[email protected]"></presence> 

rx <ack from="[email protected]" class="message" id="458GdQvvfv1so0" t="1449637762"></ack> 

rx <presence from="[email protected]" type="unavailable" last="1449637445"></presence> 

I не написали print_r() в коде, а только распечатывают код. Я не хочу печатать этот код и вместо этого хочу сохранить его в переменной. Как сохранить его в переменной?

+0

вы звоните WhatsProt() функция класса, так что может быть Täht в этих функциях, содержащих print_r() в любом месте. Вы должны отлаживать свой код ... –

+0

Hiii нашел код с 'print_r()' только 'public function debugPrint ($ debugMsg) { if ($ this-> debug) { if (is_array ($ debugMsg) || is_object ($ debugMsg)) { print_r ($ debugMsg); } else { echo $ debugMsg; } return true; } return false; } ' –

+0

Вот источник для функции debugPrint: https://github.com/WHAnonymous/Chat-API/blob/494f7ccd43b16568cdb2ead8bcd92f705e3cd835/src/whatsprot.class.php – alexanderbird

ответ

1

Если вы имели контроль над кодом, который вызывает print_r, то вы можете отправить вывод непосредственно в переменную: $var_info = print_r($var,true); - См https://stackoverflow.com/a/5762520/3012550

Тем не менее, кажется, что вы не имеете контроля над выводом, так как определение функции is part of the library (строка 1788). Таким образом, вы можете использовать ob_start, как описано здесь: https://stackoverflow.com/a/4798178/3012550

ob_start(); 
functionThatCallsPrintR(); 
$output = ob_get_clean(); 
// $output contains everything outputed between ob_start() and ob_get_clean()