在 PHP 中如何移除字符串的前缀或者后缀

2023-04-13 11:10:30 浏览数 (1)

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 函数,所以就自己写了两个:

移除字符串前缀

代码语言:javascript复制
function wpjam_remove_prefix($str, $prefix){
	if(str_starts_with($str, $prefix)){
		return substr($str, strlen($prefix));
	}

	return $str;
}

先判断 str 是否以 prefix 开头,如果是,则移除它,使用很简单:

代码语言:javascript复制
wpjam_remove_prefix('wpjam_settings', 'wpjam_');	// 返回 settings

移除字符串后缀

代码语言:javascript复制
function wpjam_remove_postfix($str, $postfix){
	if(str_ends_with($str, $postfix)){
		return substr($str, 0, strlen($str) - strlen($postfix));
	}

	return $str;
}

先判断 str 是否以 postfix 结尾,如果是,则移除它,使用很简单:

代码语言:javascript复制
wpjam_remove_postfix('get_fields_by_model', '_by_model');	// 返回 get_fields

0 人点赞