在php中使用rtrim用于特定目的

时间:2012-12-18 11:05:16

标签: php trim

我不太习惯使用rtrim和Reg表达式。所以我想对此表示怀疑:

这是一个网址:http://imgur.com/r/pics/paoWS

我正在尝试在此网址上使用rtrim函数从整个网址中仅选择“paoWs”。 这是我试过的:

$yurl = 'http://imgur.com/r/pics/paoWS';
$video_id = parse_url($yurl, PHP_URL_PATH);

$yid=rtrim( $video_id, '/' );

我正在使用'$ yid'来链接imgur的图片。但尝试此功能后我得到的是:

$yid= '/r/pics/paoWS'

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

rtrim用于修剪右侧的某些字符或空格字符串。它当然不应该用于你的目的。

假设URL结构始终相同,您可以执行以下操作:

$yurl = 'http://imgur.com/r/pics/paoWS'; 
$video_id = parse_url($yurl, PHP_URL_PATH);
$parts = explode('/', $video_id)
$yid = end($parts);

答案 1 :(得分:2)

你不应该使用正则表达式(这是“昂贵的”)来解决这么简单的问题。

如果要捕获URL的最后一部分,在最后一个斜杠之后,您可以执行以下操作:

$urlParts = explode('/', 'http://imgur.com/r/pics/paoWS');
$lastPart = end($urlParts);

答案 2 :(得分:1)

rtim( strrchr('http://imgur.com/r/pics/paoWS' , '/') );   rtrim + strrchr
substr(strrchr('http://imgur.com/r/pics/paoWS', "/"), 1);  substr + strrchr

答案 3 :(得分:1)

rtrim()返回已过滤的值,而不是已删除的字符。而且你对它的使用也不合适 - 它会从右侧侧剥离传递的字符。而且您也不需要parse_url()。 已经给出了适当的答案,但这是一个更快的选择:

$yid = substr($yurl, strrpos($yurl, '/')+1);

编辑:还有一个:

$yid = ltrim(strrchr($yurl, '/'), '/');