如何在PHP中移除字符串里的双引号(")字符
解决方案
核心报错原因
你遇到的语法错误和替换函数无关,是PHP字符串定义语法错误导致的:你用单引号作为字符串边界标记,字符串内部又直接使用了未转义的单引号包裹G,PHP会将'G'左侧的单引号识别为整个字符串的结束标记,自然抛出语法错误。
第一步:修正字符串定义
只需转义字符串内部的单引号即可:
// 转义内部单引号,避免语法冲突 $string = 'dfghhhhfgh 0201-228 8"X1" \'G\' rgth fgh fgh';
第二步:移除"字符
你最初用的str_replace本身就是最高效的方案,修正字符串定义后即可正常执行:
$clean_str = str_replace('"', '', $string); echo $clean_str; // 输出:dfghhhhfgh 0201-228 8X1 'G' rgth fgh fgh
其他方案失效原因说明
preg_replace本身也可以实现替换,但固定字符串替换不需要用到正则,性能远低于str_replace,你之前调用失败同样是因为字符串定义错误,而非函数本身问题ltrim仅能移除字符串开头位置的指定字符,无法处理字符串中间的",功能本身就和你的需求不匹配
补充说明
如果你实际需要移除的是实体编码对应的原始双引号",而非"这段文本,把替换目标改成双引号即可:
$clean_str = str_replace('"', '', $string);
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

