php trim 实现函数
PHP trim 函数实现
PHP 的 trim 函数用于去除字符串首尾的空白字符或其他指定字符。以下是其实现原理和自定义实现方法。
自定义 trim 函数实现
以下是一个简单的自定义 trim 函数实现,模拟 PHP 内置函数的行为:
function customTrim($str, $characterMask = " \t\n\r\0\x0B") {
if (!is_string($str)) {
return '';
}
// 去除左侧字符
$str = ltrim($str, $characterMask);
// 去除右侧字符
$str = rtrim($str, $characterMask);
return $str;
}
分步实现原理
如果需要完全从零实现而不依赖 ltrim 和 rtrim,可以参考以下方法:
function myTrim($str, $characterMask = " \t\n\r\0\x0B") {
if (!is_string($str)) {
return '';
}
$length = strlen($str);
if ($length === 0) {
return $str;
}
// 去除左侧字符
$start = 0;
while ($start < $length && strpos($characterMask, $str[$start]) !== false) {
$start++;
}
// 去除右侧字符
$end = $length - 1;
while ($end >= 0 && strpos($characterMask, $str[$end]) !== false) {
$end--;
}
if ($start > $end) {
return '';
}
return substr($str, $start, $end - $start + 1);
}
参数说明
$str:需要处理的字符串。$characterMask:可选参数,指定要去除的字符列表。默认包含空白字符:" ":普通空格"\t":制表符"\n":换行符"\r":回车符"\0":空字节"\x0B":垂直制表符
使用示例
$text = " Hello World! ";
echo customTrim($text); // 输出 "Hello World!"
$text2 = ">>>Hello World!<<<";
echo customTrim($text2, "<>"); // 输出 "Hello World!"
注意事项
- 内置的
trim函数性能更优,建议优先使用。 - 自定义实现时需注意多字节字符(如 UTF-8)的处理,上述示例仅适用于单字节字符。
- 对于空字符串或非字符串输入,应返回空字符串以保持与内置函数一致的行为。







