PHP8 中如何移除字符串的前缀/后缀?函数没有?自己写两个

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

作者:牛逼闪闪的Denis

THE END