麻烦在if语句中的str_replace

时间:2011-09-20 13:33:16

标签: php if-statement str-replace substr

我在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;
?>

5 个答案:

答案 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.";
}