diff options
author | Anton Raharja <antonrd@gmail.com> | 2016-09-06 10:58:21 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-06 10:58:21 +0700 |
commit | fb2c20a5fed84cd1d189b5ac595f2ef87b365984 (patch) | |
tree | 3b68fe0878ed24fb16a4e438e133f24c3cfa8026 | |
parent | 619f0bda92e37c78c9045a6b353481306daf593a (diff) | |
parent | 31560a94771ff8cb1f197b659fbc46299a5141a3 (diff) | |
download | playSMS-origin/HEAD.zip playSMS-origin/HEAD.tar.gz playSMS-origin/HEAD.tar.bz2 |
Merge pull request #535 from Bootsector10/masterHEADorigin/masterorigin/HEADmaster
Fixed invalid JSON string response from Openvox. ref: https://forum.playsms.org/t/solved-send-sms-failed-in-report/1060/1
-rw-r--r-- | web/plugin/gateway/openvox/fn.php | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/web/plugin/gateway/openvox/fn.php b/web/plugin/gateway/openvox/fn.php index 6f898ea..3606090 100644 --- a/web/plugin/gateway/openvox/fn.php +++ b/web/plugin/gateway/openvox/fn.php @@ -50,7 +50,22 @@ function openvox_hook_sendsms($smsc, $sms_sender, $sms_footer, $sms_to, $sms_msg _log("url:[" . $url . "]", 3, "openvox outgoing"); - $resp = json_decode(file_get_contents($url), true); + $result = file_get_contents($url); + + $result = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $result); + $mesg_start = stripos($result, '":"'); + $mesg_end = strrpos($result, '","report":'); + + if ($mesg_start and $mesg_end) { + $mesg_start += 3; + $mesg = substr($result, $mesg_start, $mesg_end - $mesg_start); + if ($mesg != '') { + $escaped_mesg = addcslashes($mesg, '"\\/'); + $result = str_replace($mesg, $escaped_mesg, $result); + } + } + + $resp = json_decode($result, true); $data = $resp['report'][0][0][0]; // $data = $resp['report'][0][1][0]; $data['message'] = $resp['message']; |