2012-06-10 137 views
0

我目前有:限制一个字符串256字节

$payload = array(); 
$payload['aps']['badge'] = 1; 
$payload['aps']['alert'] = html_entity_decode($title); 
$payload['aps']['sound'] = "default"; 

但:

允许的通知有效载荷的最大大小为256字节; Apple推送通知服务拒绝任何超出此限制的通知。

$title(主要是英文,不是特殊的字符)通常大于256个字符。我应该怎么做才能检查并限制/删除额外的字符? strlen

+0

PHP字符串是一种char数组。 IIRC char是1个字节长,所以是的:用strlen检查字符串是否大于256个字符。 – clentfort

+0

也许'substr'? – Oliver

回答

3

您可以使用strlen检查标题是否大于256或者只是剪切它。 $title = substr($title, 0, 256);

+0

嗯......总有效负载实际上有256字节,但是strlen对阵列不起作用,对吧? – 3zzy

+0

嗯,我想你会通过json发送该数组?您可以计算所有数组值的总长度,如:$ len = strlen($ payload ['aps'] ['alert'])+ strlen($ payload ['aps'] ['sound'])+ .. 。'检查它的长度是否超过256,是否修剪标题或可修剪的值。 – BebliucGeorge