Chop函数在PHP中不起作用

时间:2014-11-13 07:38:27

标签: php string

这是我的PHP代码:

$artstruct=$author.' ('.$year.'). '.$title.'. '.$journal.', '.$volume.'('.$number.'), '.$pages;
if(strpos($artstruct,"}")){
    $art= chop($artstruct,"}");
    echo $art;
}
else{ 
    echo $artstruct;
}

$artstruct之前if(strpos($artstruct,"}"))的值是

  

Ames,S.C.,Tan,W.W.,​​Ames,G.E.,Stone,R.L.,Rizzo Jr,T.D。,... Rummans,T.A。(2011)。对前列腺癌生化复发的男性多学科生活质量干预的初步调查。心理肿瘤学,20(4),435-440

chop函数不会从上面的字符串中删除}。但是,如果我更改$artstruct的值,如下所示

$artstruct="This is a string with { and }"
if(strpos($artstruct,"}")){
    $art= chop($artstruct,"}");
    echo $art;
}
else{ 
    echo $artstruct;
}

chop函数实际上会从}中移除$artstruct。我不知道为什么chop在第一个php代码中没有运行,即使$artstruct在两个示例中都有}

1 个答案:

答案 0 :(得分:3)

根据http://php.net/manual/en/function.chop.phpchophttp://php.net/manual/en/function.rtrim.php的别名

  

rtrim - 从字符串末尾删除空格(或其他字符)

由于第一个代码中的$artstruct值为以下

  

Ames,S.C.,Tan,W.W.,​​Ames,G.E.,Stone,R.L.,Rizzo Jr,T.D。,... Rummans,T.A。(2011)。对前列腺癌生化复发的男性多学科生活质量干预的初步调查。心理肿瘤学,20(4),435-440

}的位置不在最后一个字符,因此chop($artstruct,"}")$artstruct没有任何作用。

如果您要从}替换$artstruct的所有出现,请改为使用str-replace

$art = str_replace("}", "", $artstruct)

您还应该更改

if(strpos($artstruct,"}")) 

if (strpos($artstruct,"}") !== false) 

如果$artstruct在第一个位置有}