使用php删除字符串中的撇号[duplicate]

rsl1atfo  于 2023-01-29  发布在  PHP
关注(0)|答案(4)|浏览(123)
    • 此问题在此处已有答案**:

How do I replace certain parts of my string?(5个答案)
3天前关闭。
在php中是否有一个方法可以删除字符串中的撇号?例如:-如果字符串是Mc'win,那么它应该显示为Mcwin

$Str = "Mc'win";
/*
    some code to remove the apostrophe
*/

echo $Str; // should display Mcwin
whlutmcx

whlutmcx1#

您可以使用str_replace。

$Str = str_replace('\'', '', $Str);

$Str = str_replace("'", '', $Str);

这会将$Str中的所有撇号替换为nothing(第二个参数)。第一个示例转义撇号,以便str_replace将其识别为要替换的字符,而不是封装的一部分。

au9on6nz

au9on6nz2#

如果你的变量已经被清理过了,你可能会沮丧地发现你不能使用$string = str_replace(“'”,"",$string)来移除撇号;

$string = "A'bcde";
$string = filter_var($string, FILTER_SANITIZE_STRING);

echo $string." = string after sanitizing (looks the same as origin)<br>";
$string = str_replace("'","",$string);
echo $string." ... that's odd, still has the apostrophe!<br>";

这是因为清理将撇号转换为&#39;,但您可能没有注意到这一点,因为如果回显字符串,它看起来与原始字符串相同。
您需要将您的替换搜索字符修改为&#39;,它在清理后才能工作。

$string = str_replace("&#39;","",$string);
xoshrz7s

xoshrz7s3#

在我的例子中,当我想把它存储到数据库(在我的例子中是MySQL)时,我遇到了单引号问题。

str_replace("'", "", trim($_GET["message"]))

但是,问题来了。有些数据要求我们使用单引号。所以,我没有删除引号,而是尝试保存单引号(转义单引号),以便将来可以使用(在我在Android的情况下)
我的想法是将'替换为''

$content = str_replace("'", "''", trim($_GET["message"])); // double quotes for escape single quotes

这个答案是给像我这样坚持问题的人的。我有更好的解决方案。干杯!

n7taea2i

n7taea2i4#

以上答案确实解决了你的问题,但不能解决以下问题:
我想从一个字符串或文件中删除一个带有所有格's'的撇号。如果我用无空格替换它,它会为句子的其余部分生成'fasters'和空格。我这样做的原因是为了显示单词在字符串或文件中的频率。
我试过这个:
$file ="1大卫是我的叔叔。2他是我父亲的兄弟。"$字符串=预替换('/[|"|0-9|]/","",$文件);打印_r($字符串);回声
';
输出:大卫是我的叔叔。他是我爸爸的弟弟。

相关问题