PHP中的substr–获取字符串的子串
PHP中的substr函数用于获取一个字符串的子串。该函数可以从字符串中指定的位置开始获取所需长度的子字符串,返回的结果是一个新的字符串,不会改变原字符串。
substr函数的语法如下:
substr(string $str, int $start, int $length = null): string
其中,$str为要获取子串的原字符串,$start为开始位置,$length为子串的长度。如果不指定$length参数,则默认返回从$start位置到字符串末尾的所有字符。
下面是几个示例:
$str = 'Hello, world!'; echo substr($str, 7); // 输出 "world!" echo substr($str, 0, 5); // 输出 "Hello" echo substr($str, -6); // 输出 "world!" echo substr($str, -12, 5); // 输出 "Hello"
在 个示例中,从字符串的第7个位置开始获取字符串的子串。在第二个示例中,从字符串的第0个位置开始获取5个字符的子串。在第三个示例中,从字符串的倒数第6个位置开始获取字符串的子串。在第四个示例中,从字符串的倒数第12个位置开始获取5个字符的子串。
需要注意的是,$start参数可以为负数,表示从字符串的末尾开始计算位置。但是,如果$length参数也为负数,那么将会抛出一个警告,并返回一个空字符串。如果$length参数超过了字符串的长度,那么$length参数会被限制为字符串末尾的位置。
substr函数的使用场景非常广泛。比如,我们可以使用该函数获取URL中的域名:
function get_domain($url) {
$domain = substr(parse_url($url, PHP_URL_HOST), 4);
return $domain;
}
$url = 'https://www.google.com/search?q=php';
echo get_domain($url); // 输出 "google.com"
在上述示例代码中,我们使用parse_url函数获取URL中的主机名,并使用substr函数去掉了前面的"www."子串,最终返回了URL的域名。
除了获取子串,substr函数还可以用于删除字符串中的子串。我们只需要将$length参数设置为0,就可以删除指定位置的字符:
$str = 'Hello, world!'; echo substr_replace($str, '', 7, 6); // 输出 "Hello!,"
在上述示例代码中,我们使用substr_replace函数替换了字符串中从第7个位置开始的6个字符(包含空格),从而达到了删除子串的目的。
总的来说,substr函数是PHP中非常常用的字符串函数之一。无论是获取子串、替换字符、删除子串,都可以用substr函数轻松实现。因此,能够熟练地使用substr函数是PHP开发者的必备技能之一。
