You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中str_replace替换自定义短代码后返回空字符串的问题排查

str_replace返回空结果原因

str_replace处理数组类型的搜索、替换参数时,遵循以下规则:

  • 当$search和$replace均为数组时,按索引一一对应执行替换
  • 若$replace数组元素数量少于$search数组,$search中超出$replace长度的匹配项,会统一被替换为空字符串

你提供的代码中,$search数组总长度为15,$replace数组长度仅为1。你要替换的{{ticket_subject}}位于$search数组的索引3位置,已经超出$replace的索引范围,匹配后会被替换为空字符串,因此最终输出为空。

修复方案

可根据实际需求任选一种修改:

  1. 将$replace改为字符串类型,$search中所有匹配项都会统一替换为该字符串:
// 原数组改为字符串
$replace = "ticket with attachments";
  1. 保证$search和$replace数组长度一一对应,为每个短代码设置对应的替换值
  2. 仅把需要用到的短代码放入$search数组,和$replace元素一一对应

内容的提问来源于stack exchange,提问作者user16648336

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:45:01