在 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

©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。