PHP在/和/之间的url上获取结束字符串

时间:2012-06-17 22:31:17

标签: php

我需要在/和/

之间获取url的最后一个字符串内容

例如:

http://mydomain.com/get_this/

or

http://mydomain.com/lists/get_this/

我需要知道get_this在url中的位置。

5 个答案:

答案 0 :(得分:11)

trim()删除尾部斜杠,strrpos()找到/的最后一次出现(在裁剪之后),substr()获取最后一次View output后的所有内容1}}。

/

basename()


更好的是,你可以使用View output,就像hakre建议的那样:

$url = trim($url, '/');
echo substr($url, strrpos($url, '/')+1);

{{3}}

答案 1 :(得分:1)

假设总是是一个尾部斜杠:

$parts = explode('/', $url);
$get_this = $parts[count($parts)-2]; // -2 since there will be an empty array element due to the trailing slash

如果不是:

$url = trim($url, '/'); // If there is a trailing slash in this URL instance get rid of it so we're always sure the last part is where we expect it
$parts = explode('/', $url);
$get_this = $parts[count($parts)-1];

答案 2 :(得分:1)

这样的事情应该有效。

<?php
$subject = "http://mydomain.com/lists/get_this/";
$pattern = '/\/([^\/]*)\/$/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>

答案 3 :(得分:1)

只需使用parse_url()explode()

<?php

$url = "http://mydomain.com/lists/get_this/";
$path = parse_url($url, PHP_URL_PATH);
$path_array = array_filter(explode('/', $path));
$last_path = $path_array[count($path_array) - 1];

echo $last_path;

?>

答案 4 :(得分:0)

你可以试试这个:

preg_match("/http:\/\/([a-z0-9\.]+)\/(.+)\/(.*)\/?/", $url, $matches);
print_r($matches);