如何在php中替换/删除字符串中的单词


How to replace/remove word in a string in php

我有一个这样的字符串:

SELECT * FROM `backplanechanneldecoder20141002`  AND  WHERE  Z0 = '1'

我想从中删除AND。我尝试使用

$sql_total = str_replace("AND WHERE", "WHERE", $sql_total);
$sql_total = str_replace("AND  WHERE", "WHERE", $sql_total);

但没有奏效。

看起来"AND"answers"WHERE"之间有多个空格。您可以使用正则表达式处理此问题:

$sql_total = preg_replace('/AND's+WHERE/', 'WHERE', $sql_total);

表达式的's+部分与一个或多个空格字符匹配。

正如评论中提到的,目前还不清楚你最初是如何得到这个字符串的。看起来您正试图以编程方式生成查询字符串,但没有正确处理第一个/唯一的"WHERE"子句。显然,解决这个问题的原因比解决症状要好。