找上我的Apache錯誤日誌文件,我檢查了這樣的警告:如何解決警告JSON_BIGINT_AS_STRING未執行?
PHP Warning: json_decode(): option JSON_BIGINT_AS_STRING not implemented in /../codebird.php on line 2517
它提到了我使用自動後在Twitter上從我的博客的腳本。
這是有罪的功能:
protected function _parseApiReply($reply)
{
$need_array = $this->_return_format === CODEBIRD_RETURNFORMAT_ARRAY;
if ($reply === '[]') {
switch ($this->_return_format) {
case CODEBIRD_RETURNFORMAT_ARRAY:
return [];
case CODEBIRD_RETURNFORMAT_JSON:
return '{}';
case CODEBIRD_RETURNFORMAT_OBJECT:
return new \stdClass;
}
}
if (! $parsed = json_decode($reply, $need_array, 512, JSON_BIGINT_AS_STRING)) {
if ($reply) {
// assume query format
$reply = explode('&', $reply);
foreach ($reply as $element) {
if (stristr($element, '=')) {
list($key, $value) = explode('=', $element, 2);
$parsed[$key] = $value;
} else {
$parsed['message'] = $element;
}
}
}
$reply = json_encode($parsed);
}
switch ($this->_return_format) {
case CODEBIRD_RETURNFORMAT_ARRAY:
return $parsed;
case CODEBIRD_RETURNFORMAT_JSON:
return $reply;
case CODEBIRD_RETURNFORMAT_OBJECT:
return (object) $parsed;
}
return $parsed;
}
}
爲什麼如果標題太長,我得到這個警告,並沒有張貼在Twitter?
P.S.
我已經安裝PHP 5.5.9
但問題仍然相同。
看起來像那臺機器上PHP的更新已經過期了。 –
@ N.B。 :)是的,我已經更新了這個問題 – NineCattoRules
我在5.6,它的工作原理,我沒有嘗試7,但我會猜測並說它也可以在那裏工作。 –