在 PHP 中如何移除字符串的前缀或者后缀
PHP8 引入 3 个处理字符串的方法,分别是 str_contains()
、 str_starts_with()
、 str_ends_with()
,大家一看方法名就已经猜到这三个方法的作用了,而 WordPress 5.9 提供了这三个字符串函数的 polyfill。
polyfill 的意思是即使你服务器 PHP 版本没有 8.0 版本,WordPress 也自己实现了这三个函数,只要你的 WordPress 是 5.9 版本,就可以完全放心的使用 str_contains()
、 str_starts_with()
、 str_ends_with()
这三个函数。
有时候我们判断了一个字符串以另一个字符串开头或者结尾之后,可能还需要移除这个前缀或者后缀,我找了一圈没有看到相应的 PHP 函数,所以就自己写了两个:
移除字符串前缀
function wpjam_remove_prefix($str, $prefix){
if(str_starts_with($str, $prefix)){
return substr($str, strlen($prefix));
}
return $str;
}
先判断 $str
是否以 $prefix
开头,如果是,则移除它,使用很简单:
wpjam_remove_prefix('wpjam_settings', 'wpjam_'); // 返回 settings
移除字符串后缀
function wpjam_remove_postfix($str, $postfix){
if(str_ends_with($str, $postfix)){
return substr($str, 0, strlen($str) - strlen($postfix));
}
return $str;
}
先判断 $str
是否以 $postfix
结尾,如果是,则移除它,使用很简单:
wpjam_remove_postfix('get_fields_by_model', '_by_model'); // 返回 get_fields