使用PHP从URL获取第一个目录

时间:2014-05-12 08:31:41

标签: php parsing url

我有这样的变量url:

$url = 'http://mydomain.com/yep/2014-04-01/some-title';

那么我想要的是解析“是”的问题。部分来自它。我这样试试:

$url_folder = strpos(substr($url,1), "/"));

但由于某种原因,它会返回一些数字。我做错了什么?

4 个答案:

答案 0 :(得分:6)

使用explode,试试这个:

$url = 'http://mydomain.com/yep/2014-04-01/some-title';
$urlParts = explode('/', str_ireplace(array('http://', 'https://'), '', $url));
echo $urlParts[1];

Demo Link

答案 1 :(得分:1)

好吧,首先substr(...,1)会在第1位后返回给你。所以这不是你想要做的。

因此http://mydomain.com/yep/2014-04-01/some-title变为ttp://mydomain.com/yep/2014-04-01/some-title

然后,您在第1个位置后进行strpos,寻找第一个/ ...(这将是/中的第一个ttp://mydomain.com/yep/2014-04-01/some-title)。函数strpos()将返回它的位置(数字)。所以它会返回数字4

而是使用explode()

$parts = explode('/', $url);
echo $parts[3]; // yep
// $parts[0] = "http:"
// $parts[1] = ""
// $parts[2] = "mydomain.com"
// $parts[3] = "yep"
// $parts[4] = "2014-04-01"
// $parts[4] = "some-title"

答案 2 :(得分:0)

使用parse_url功能。

$url = 'http://mydomain.com/yep/2014-04-01/some-title';
$url_array = parse_url($url);
preg_match('@/(?<path>[^/]+)@', $url_array['path'], $m);
$url_folder = $m['path'];
echo $url_folder;

答案 3 :(得分:-1)

替代方式,请检查 this 。只需获取第一个数组项。