如何从php中的url中获取单词?

时间:2016-02-19 09:39:58

标签: php

url string

http://localhost/magento_prac/index.php/electronics/computers.html
http://localhost/magento_prac/index.php/electronics/cell-phones.html

我想从网址中获取“计算机”。前'计算机','手机'

4 个答案:

答案 0 :(得分:1)

尝试类似

的内容
$category = preg_replace('/^.*\/(.*)\.html$/', '$1', $url);

正则表达式匹配从字符串的开头(.*)到最后一个/(^)的所有内容(\/)。然后,除了最后的.*之外,它再次匹配所有内容(.html),并期望字符串在此之后结束($)。

第二个.*周围的括号允许您将替换中匹配的那部分引用为$1

答案 1 :(得分:1)

您可以将URL转换为attay并使用array_pop()获取最后一个元素:

$urlArray = explode('/', $url);
$word = substr(array_pop($urlArray),0,-5);

答案 2 :(得分:1)

试试这段代码:

//get the url
$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

//seperate the segments using explode()
$segments = explode('/', $url);

//and get the last segment
$last = explode('.', end($segments));

//use the last segment
echo $last[0];

答案 3 :(得分:1)

为方便起见,这是另一种选择:

$url = 'http://localhost/magento_prac/index.php/electronics/computers.html';
$category = pathinfo($url)['filename']; // "computers"

上面的示例假定应用程序至少在PHP 5.4上运行以使用数组取消引用。

  

pathinfo - 返回有关文件路径的信息。

'dirname' => string 'http://localhost/magento_prac/index.php/electronics'
'basename' => string 'computers.html'
'extension' => string 'html'
'filename' => string 'computers'