在PHP编程中少不了对一串字符串进行一些处理操作,比如通过PHP的explode函数把字符串转换成数组,使用strpos()函数查找字符串中是否包含指定的字符串,str_replace()函数把字符串中的指定字符串替换成其它的字符,或对字符串进行截取操作。
今天我们就说说,在一串字符串中通过字符串中的某个字符进行截取操作,最常见的就是对一串URL形式的字符串进行截取,获取图像的文件名或是图像的路径。PHP截取URL形式的字符串
例1:PHP获取URL链接中的文件名
对一串图像链接的URL字符串进行截取,并获得图像的文件名。
代码$t = 'http://www.feiniaomy.com/upload/mochu.jpg';
$s = strripos($t,"/");
echo $s;
//31 "/"最后一次在字符中出现的位置
$name = substr($t,$s+1);
// 从第32个字符开始截取字符串
echo '
';
echo $name;
//输出截取的文件名
注释:
通过strripos 找到最后字符串'http://www.feiniaomy.com/upload/mochu.jpg'中 '/'最后出现的位置,然后加上/,再通过substr截取最后一个‘/’后面的字符串(不包括最后一个'/')
例2:PHP获取URL链接中除文件名的部分(路径)
我们可以简单的修改一下上面的PHP截取字符串的代码,来实现
代码$t = 'http://www.feiniaomy.com/upload/mochu.jpg';
$s = strrpos($t,"/");
echo $s;
//31 "/"最后一次在字符中出现的位置
$path = substr($t,0,$s+1);
// 从第0个字符开始截取字符串g一直到第32个字符
echo '
';
echo $path;
//输出不含有文件名的网址
//http://www.feiniaomy.com/upload/
注释:
通过strrpos找到'/'最后出现的位置,通过字符串截取从字符串'http://www.feiniaomy.com/upload/mochu.jpg'的开头一直截取到最后一个'/'前的位置,这里包括“/”
上面用到PHP内置函数
strrpos(): 函数查找字符串在另一字符串中最后一次出现的位置(区分大小写)
strripos(): 查找字符串在另一字符串中最后一次出现的位置(不区分大小写).
substr(): 函数返回字符串的一部分。
PS:上面的PHP截取URL形式字符串的实例,也可以应用到其它形式的字符串上,原理都是一样,通过获取指定字符的位置来进行截取!