当前位置: 首页 > 知识库问答 >
问题:

php - 消息模板中如何处理标题或用户名过长?

杜英范
2023-04-27

业务描述:
数据库存了消息模板, 比如模板中有 用户名 和 标题,
后端遇到需要发送通知的地方, 取出模板, 替换其中的 用户名 和 标题, 然后将消息写入到消息表
前端拿到这条消息展示到客户端
其中,用户名和标题的展示是有长度限制的,
如何处理这个问题, 是前端判断展示, 还是后端只截取好字符串再替换?

共有5个答案

左宁
2023-04-27

建议由前端进行操作。

根据你的信息,模板是由HTML展示的,那么直接由前端在 css 中设置好相关样式即可。

后端只需要保证返回的数据是准确的,对用户展示的效果前端根据需求更改。

邰钟展
2023-04-27

这个问题可以从两个方面考虑:

  1. 前端处理:前端可以在获取消息后对用户名和标题进行长度限制,超过限制的部分可以使用省略号等方式表示。这种方式的优点是可以灵活控制展示的长度和展示方式,但是需要前端和后端协调好长度限制的策略。
  2. 后端处理:后端可以在获取模板后对用户名和标题进行长度限制,只替换前几个字符,然后将截取后的字符串写入消息表。这种方式的优点是简单,可以在后端一次性解决问题,但是可能会丢失部分信息。

总之,选择哪种方式需要根据具体业务场景来决定。如果前端需要灵活控制展示,或者有多个客户端需要展示同一条消息,可以考虑前端处理。如果后端处理方便,并且不会丢失重要信息,可以考虑后端处理。同时,需要保证前后端对长度限制的策略一致,避免出现展示不一致的情况。

堵雅健
2023-04-27

其实都可以。最好的办法是让前端来实现超出隐藏。

前端实现不了,再用后端来进行处理。

云京
2023-04-27

没太看懂,后端“取出模板, 替换其中的 用户名 和 标题”了,说明已经生成了消息(字符串),那为什么又有“用户名和标题的展示是有长度限制的”?后端生成消息的时候不考虑这个规则吗?如果前端拿到消息字符串后再去处理字符串里用户名和标题部分,按什么条件确定字符位置呢?

燕璞
2023-04-27

一般都是字体超出隐藏,并显示省略号
overflow:hidden;//超出隐藏
text-overflow:ellipsis;//超出部分以省略号展示
display:-webkit-box;//设置成伸缩盒弹性盒子
-webkit-line-clamp:2;//设置显示的行数
-webkit-box-orient:vertical;//伸缩盒弹性盒子的排列方式

 类似资料:
  • 获取小程序模板库标题列表 $app->template_message->list($offset, $count); 获取模板库某个模板标题下关键词库 $app->template_message->get($id); 组合模板并添加至帐号下的个人模板库 $app->template_message->add($id, $keywordIdList); 获取帐号下已存在的模板列表 $app

  • 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 修改账号所属行业 $app->template_message->setIndustry($industryId1, $industryId2); 获取支持的行业列表 $app->template_message->ge

  • 我有一个注册表格,通过以下步骤: 填写用户信息(姓名,地址等)和用户名 如果用户按下提交按钮,则检查用户名是否已经在数据库中 如果用户名已经在使用,他必须重命名用户名,如果没有,则显示他输入的内容(名称,地址等)。 他必须确认网站规则和他输入的数据是正确的。如果他按下确认按钮,数据库中将插入一行他的详细信息和用户名。 我不想在步骤2之后将行插入数据库中。,因为我不希望数据库中没有确认规则的用户的行

  • 所以,我只是想处理用户从应用程序注销时的情况。当用户注销时,我调用方法,它按预期工作,即用户不再收到推送消息... 但是,如果没有internet连接方法,则deleteToken()没有帮助。尽管用户已注销,但在建立连接时仍会收到推送消息。 我该怎么处理这件事?

  • 问题内容: 我正在使用JavaMail-1.5将Gmail帐户的IMAP消息附加到Yahoo帐户。我的要求是从邮件中删除用户标志,因为将邮件附加到其他文件夹时会产生错误。我要从消息中删除所有用户标志吗? 下面是获取标志的代码。 请建议如何从我的邮件中删除。 谢谢 问题答案: 我的问题已通过此代码解决- 此代码删除了导致无法将Gmail附加邮件添加到Yahoo的标志。

  • 我从文件调用方法,该方法位于文件中。我使用GnuPG签署我的请求,我发送给注册官。运行时,出现以下错误: 文件中的第1766行: 我不明白哪里出了问题。