PHP方法之 substr

PHP中的substr是一个用于截取字符串的函数,可以截取一个字符串从指定位置开始的指定长度的子串,或从指定位置截取到字符串的末尾。

## 使用方法

substr函数有三个参数,第一个参数是要截取的字符串,第二个参数是从哪个位置开始截取,第三个参数是要截取的长度。

```php

substr(string $string, int $start, int|null $length = null): string|false

```

- $string:要截取的字符串。

- $start:截取的起始位置,可以是负数,表示从字符串末尾开始计算;

- $length:截取的长度,如果未指定,则截取从$start开始到字符串末尾的所有字符;

实例:

```php

$str = 'Hello, world!';

echo substr($str, 0, 5); // 输出:Hello

echo substr($str, 7); // 输出:world!

echo substr($str, -6); // 输出:world!

```

在上面的代码中,第一个例子截取了字符串 $str 从0个位置开始到第5个位置的子字符串,即输出了前5个字符Hello。第二个例子截取了字符串 $str 从第7个位置开始到字符串末尾的所有字符,即输出了world!。第三个例子中,substr的第二个参数为负数,意味着从字符串末尾开始计算位置,-6表示倒数第6个字符,输出了world!。

## 返回值

substr函数返回的是截取后的字符串子串,如果参数不合法或执行过程出现错误,会返回false。

## 注意事项

1. 如果指定的$start和$length参数越界,substr函数会返回false。

2. 可以传递null给$length,这意味着截取从$start到字符串末尾的所有字符。

3. 如果传递负数给$length,它将被视为0。

4. 如果传递负数给$start,并且其绝对值大于字符串长度,substr函数会将$start视为0。

5. 如果参数中的字符串是空字符串,substr函数会返回false。

## 案例说明

### 例1:获取URL的协议、主机和路径

```php

$url = 'https://www.baidu.com/s?wd=php';

$protocol = substr($url, 0, strpos($url, '://')); // 获取协议

$host = substr($url, strpos($url, '://') + 3, strpos($url, '/', strpos($url, '://') + 3) - strpos($url, '://') - 3); // 获取主机

$path = substr($url, strpos($url, '/', strpos($url, '://') + 3)); // 获取路径

echo $protocol . '
'; // 输出:https

echo $host . '
'; // 输出:www.baidu.com

echo $path . '
'; // 输出:/s?wd=php

```

在上面的代码中,我们使用了substr函数来截取URL中的协议、主机和路径。代码中,我们首先使用 strpos 函数来查找 "://" 在字符串中的位置,从而确定协议的起始位置。然后,我们使用 strpos 函数查找主机的起始位置和结束位置,从而得到主机名。最后,我们使用 strpos 函数查找路径的起始位置,从而确定路径。

### 例2:获取字符串中最后一个"."后的文件扩展名

```php

$str = 'example.htm';

$ext = substr($str, strrpos($str, '.') + 1); // 获取文件扩展名

echo $ext; // 输出:htm

```

在上面的代码中,我们使用 substr 和 strrpos 函数来从给定的字符串中提取文件扩展名。首先,我们使用 strrpos 函数确定字符串中最后一个 "." 的位置。然后,我们使用 substr 函数来截取 "." 后面的字符串,从而获得文件扩展名。

### 例3:获取用户输入的前10个字符

```php

$input = $_POST['input'];

$len = strlen($input);

$max_len = 10;

$str = substr($input, 0, $max_len);

if ($len > $max_len) {

$str .= '...';

}

echo $str;

```

在上面的代码中,我们使用 substr 函数从用户输入中获取前10个字符。如果输入字符串的长度大于10,则在截取后的字符串末尾添加省略号。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(35) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部