0

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

这是一个网址: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'

我该如何解决这个问题?

4

4 回答 4

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);
于 2012-12-18T11:06:58.373 回答
2

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

如果你想捕捉 URL 的最后一部分,在最后一个斜杠之后,你可以这样做:

$urlParts = explode('/', 'http://imgur.com/r/pics/paoWS');
$lastPart = end($urlParts);
于 2012-12-18T11:08:00.820 回答
1
rtim( strrchr('http://imgur.com/r/pics/paoWS' , '/') );   rtrim + strrchr
substr(strrchr('http://imgur.com/r/pics/paoWS', "/"), 1);  substr + strrchr
于 2012-12-18T11:11:16.233 回答
1

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

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

编辑:还有一个:

$yid = ltrim(strrchr($yurl, '/'), '/');
于 2012-12-18T11:13:05.597 回答