我在if语句中使用str_replace时遇到了一些麻烦。我想从我输出的一些文本中删除多个格式('s)。
我提供了文本输出中包含的关键字。因此,如果我的关键字有一个's'作为最后一个字符,我希望从输出中删除复数字符。例如,如果关键字是'handbags',我想要回应“我爱手提包”,而不是“我爱手提包”。这就是我想出的,但它不起作用。
<?php
$keyword = "handbags";
$string = "I love $keyword's.";
$last = substr($keyword, -1);
if ($last == "s") {str_replace("'s", "", $string);}
echo $string;
?>
答案 0 :(得分:3)
if ($last == "s") { $string = str_replace("'s", "", $string);}
答案 1 :(得分:2)
str_replace
返回一个值,不会通过引用对字符串进行操作。您需要将结果分配回字符串:
$string = str_replace("'s", "", $string);
答案 2 :(得分:2)
您也可以使用:
$string = "I love $keyword".(substr($keyword, -1)=="s"?".":"'s.");
为您节省了几行代码:)
答案 3 :(得分:1)
这是正确的变体:
<?php
$keyword = "handbags";
$string = "I love $keyword's.";
$last = substr($keyword, -1);
if ($last == "s") {$string=str_replace("'s", "", $string);}
echo $string;
?>
答案 4 :(得分:0)
这应该可以解决问题
$keyword = "handbag";
$string = "I love $keyword";
$string_count = strlen($string)-1;
$string_check = substr($string,$string_count,1);
if($string_check == "s"){
$string = str_replace("s", "'s", $string);
echo "$string.";
}
else {
echo $string."'s.";
}