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

PHP使用str_replace替换反斜杠输出不符合预期问题求解

问题根因与解决方案

核心问题1:字符串定义时的反斜杠转义

PHP中反斜杠\是默认的转义符,你用双引号定义"UPI\11770918"时,\117会被识别为八进制转义序列:八进制117对应十进制79,ASCII字符为大写字母O,因此字符串定义完成后实际存储的值已经是UPIO70918,不存在反斜杠,自然无法完成替换。

核心问题2:替换语法与参数错误

你写的str_replace('\', '~', $txn_desc)存在两个问题:

  • 第一个参数'\'中,单个反斜杠会转义后面的单引号,导致PHP语法解析错误
  • 你前面定义的字符串变量是$str,但第三个参数传了未定义的$txn_desc,变量不匹配

解决方法

  1. 定义带字面量反斜杠的字符串时,必须用双反斜杠\\做转义,才能让PHP识别为真实的\字符
  2. str_replace的查找参数同样要传入转义后的双反斜杠
  3. 替换时使用正确的变量名

正确代码示例

// 双反斜杠转义,定义真实包含反斜杠的字符串
$str = "UPI\\11770918";
// 双反斜杠表示查找字面量反斜杠,使用正确的变量参数
echo str_replace('\\', '~', $str);

执行后输出即为你期望的UPI~11770918。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:12:00