【问题标题】:Limiting a string to to 256 bytes将字符串限制为 256 个字节
【发布时间】:2012-06-10 13:19:34
【问题描述】:

我目前有:

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

但是:

通知负载的最​​大允许大小为 256 字节; Apple Push Notification Service 拒绝任何超过 这个限制。

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

【问题讨论】:

  • PHP 字符串是一种字符数组。 IIRC 一个字符长 1 个字节,所以是的:如果字符串大于 256 个字符,请使用 strlen 检查。

标签: php ios apple-push-notifications


【解决方案1】:

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

【讨论】:

  • 嗯...总有效载荷实际上是 256 字节,但 strlen 不会在数组上工作,对吧?
  • 好吧,我想你会通过 json 发送那个数组?您可以计算所有数组值的总长度,例如:$len = strlen($payload['aps']['alert']) + strlen($payload['aps']['sound']) + ... ;。检查其长度是否超过 256,以及是否修剪标题或可以修剪的值。
【解决方案2】:

正如它所描述的,问题是关于字节的长度,所以 substr 不是正确的方法。我认为应该改用mb_strcut 方法。

https://www.php.net/manual/en/function.mb-strcut.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多