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

如何使用stringr::str_replace()/str_replace_all()添加转义字符?

解决单引号/双引号转义失败的问题

你的问题核心是str_replace的参数顺序搞反了,函数的正确语法是str_replace(要搜索的字符串, 替换后的字符串, 目标字符串),你当前的写法把目标字符串和搜索参数的位置弄混了,导致替换逻辑完全错误。

要实现将字符串中的单引号'替换为\',正确的写法如下:

$original = "Can't";
$escaped = str_replace("'", "\\'", $original);
// 最终输出:Can\'t

如果需要同时处理单引号和双引号,可通过数组批量替换:

$original = 'She said "I can\'t finish this"';
$searchList = array("'", '"');
$replaceList = array("\\'", '\\"');
$escaped = str_replace($searchList, $replaceList, $original);
// 最终输出:She said \"I can\'t finish this\"

注意:在PHP中,双引号包裹的字符串里,反斜杠需要额外转义(用\\表示一个实际的\);如果用单引号包裹字符串,仅在转义单引号时需要加反斜杠,其他场景可直接书写\'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:15:36