在php中去掉左右字符的最佳方法是什么?我把它向右剥光了,但不知道向左。我试过ltrim,但似乎效果不好。
$rawsubject = 'RE: [#4152] - Registration Issues';
$casenumber_param="]";
$casenumber_strip = strpos($rawsubject,$casenumber_param);
$casenumber = substr($rawsubject,0,$casenumber_strip);
当前输出为:RE: [#4152
我需要去掉[#
剩下的所有东西,所以我只剩下4152
。
有几种方法可以做到这一点,但最好使用正则表达式。这一个的行为与您当前的代码完全相同:找到最后的方括号并隔离它之前的所有连续数字
if (preg_match('/'d+(?='])/', $rawsubject, $matches)) {
$casenumber = $matches[0];
}
你很可能更喜欢更直接的东西,比如"抓住方括号之间的数字":
if (preg_match('/'[#('d+)']/', $rawsubject, $matches)) {
$casenumber = $matches[1];
}
在实际操作中查看。
当前代码的逻辑扩展只是做另一件事:
$rawsubject = 'RE: [#4152] - Registration Issues';
$casenumber_start="#";
$casenumber_end="]";
$start = strpos($rawsubject,$casenumber_start)+1;
$end = strpos($rawsubject,$casenumber_end);
$casenumber = substr($rawsubject,$start,$end-$start);
但我会选择基于正则表达式的解决方案。
要去掉那些带有ltrim的东西,你需要这样写:
$rawsubject = ltrim($rawsubject, "RE:[# ");