欢迎访问宙启技术站
智能推送

PHP中的substr–获取字符串的子串

发布时间:2023-06-25 17:24:35

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开发者的必备技能之一。