这是我的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
在两个示例中都有}
。
答案 0 :(得分:3)
根据http://php.net/manual/en/function.chop.php,chop
是http://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
在第一个位置有}
。