【发布时间】:2012-07-20 11:14:54
【问题描述】:
当我使用时:
rtrim('HeaderController', 'Controller');
我希望这将返回 Header 因为 HeaderController - Controller = Header 但这会返回“Head”,为什么?
【问题讨论】:
-
第二个参数是一个字符列表,而不是一个完整的单词。
当我使用时:
rtrim('HeaderController', 'Controller');
我希望这将返回 Header 因为 HeaderController - Controller = Header 但这会返回“Head”,为什么?
【问题讨论】:
rtrim 期望删除一个字符列表,而不是子字符串。所以rtrim 删除了Header 中的er。
【讨论】:
如果你想删除“控制器”子字符串,你可以这样做:
$name = 'HeaderController';
$shortName = str_replace('Controller', '', $name);
要确保只替换字符串末尾的“Controller”,您需要一个正则表达式(这有点慢)
$name = 'HeaderController';
$shortName = preg_replace('/Controller$/', '', $name);
$-符号标志着字符串的结束
【讨论】: