diff --git a/ApnsPHP/Push.php b/ApnsPHP/Push.php index f73f3ad1..ed45caa2 100644 --- a/ApnsPHP/Push.php +++ b/ApnsPHP/Push.php @@ -168,7 +168,17 @@ public function send() } } - $nLen = strlen($aMessage['BINARY_NOTIFICATION']); + + // http://php.net/manual/en/function.strlen.php#54906 + $hasMbstring = extension_loaded('mbstring'); + $hasMbShadow = (int) ini_get('mbstring.func_overload'); + + if ($hasMbstring && ($hasMbShadow & 2) ) { + $nLen = mb_strlen($aMessage['BINARY_NOTIFICATION'],'latin1'); + } else { + $nLen = strlen($aMessage['BINARY_NOTIFICATION']); + } + $this->_log("STATUS: Sending message ID {$k} {$sCustomIdentifier} (" . ($nErrors + 1) . "/{$this->_nSendRetryTimes}): {$nLen} bytes."); $aErrorMessage = null; @@ -385,4 +395,4 @@ protected function _removeMessageFromQueue($nMessageID, $bError = false) } unset($this->_aMessageQueue[$nMessageID]); } -} \ No newline at end of file +}