为特定目的在php中使用rtrim

为特定目的在php中使用rtrim,php,trim,Php,Trim,我不太习惯使用rtrim和Reg表达式。所以我想澄清我的疑问: 以下是一个url:http://imgur.com/r/pics/paoWS 我试图在这个url上使用rtrim函数,从整个url中只选择“paoWs”。 以下是我尝试过的: $yurl = 'http://imgur.com/r/pics/paoWS'; $video_id = parse_url($yurl, PHP_URL_PATH); $yid=rtrim( $video_id, '/' ); 我正在使用“$yid”来热

我不太习惯使用rtrim和Reg表达式。所以我想澄清我的疑问:

以下是一个url:http://imgur.com/r/pics/paoWS

我试图在这个url上使用rtrim函数,从整个url中只选择“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'
如何解决此问题?

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

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

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

对于如此“简单”的问题,您不应该使用“昂贵”的正则表达式

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

$urlParts = explode('/', 'http://imgur.com/r/pics/paoWS');
$lastPart = end($urlParts);
rtrim返回过滤后的值,而不是剥离字符。而且您对它的使用也不恰当-它会从右侧删除传递的字符。您也不需要解析url。 已经给出了正确的答案,但这里有一个更快的选择:

$yid = substr($yurl, strrpos($yurl, '/')+1);
编辑:和另一个:

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

你如何解决这个问题?当然不是rtrim。你能告诉我们为什么你认为rtrim会在这里帮助你吗?我需要在url上使用正则表达式吗?我认为rtrim会删掉我想要热链接图像的最后一部分。@RobbieDc你检查API参考文档了吗?不,本,我想我现在应该。。谢谢你的帮助!这将触发E_严格通知。必须指定explode的返回值,然后对生成的变量使用end。
$yid = ltrim(strrchr($yurl, '/'), '/');