如何使用PHP从URL中删除最后一个元素?

时间:2015-07-13 07:17:43

标签: php string

我有$url = "example.com/en/category/node/extra/";,我需要从extra删除$url,我该怎么做?

5 个答案:

答案 0 :(得分:3)

将$ _SERVER ['SCRIPT_URL']分解为数组,删除空元素,然后删除最后一个数组元素。然后,将它们与初始斜杠和斜杠一起重新崩溃。

$urlArray = explode('/',$_SERVER['SCRIPT_URL']);
$urlArray = array_filter($urlArray); 

// remove last element
array_pop($urlArray);

$urlString = '/'.implode('/',$urlArray).'/';

除非您需要最后一个数组元素,否则不要将array_pop()存储为变量。

答案 1 :(得分:2)

$url = "example.com/en/category/node/extra/"; echo basename($url); echo dirname($url);

返回
extra example.com/en/category/node

答案 2 :(得分:1)

很多方式,

  1. 爆炸弹出最后,然后内爆。

  2. 使用正则表达式替换最后一部分

  3. 我更喜欢:追加../使它像" example.com/en/category/node/extra /../" 因为这个成本

  4. 。计算量少,效率更高

    如果你对其中一个感兴趣并且不知道该怎么做,请给我留言。

答案 3 :(得分:1)

您可以使用preg_replace功能。

preg_replace('~/[^/]*/([^/]*)$~', '//\1', $str);

DEMO

答案 4 :(得分:0)

试试这个你的正则表达式

[^/]+/$ //to get last and replace it with empty