Php 如何在斜线后提取字符串?
比如: "http://www.blog-name.com/search/taio 克鲁兹“Php 如何在斜线后提取字符串?,php,string,url,var,Php,String,Url,Var,比如: "http://www.blog-name.com/search/taio 克鲁兹“ ---------------------------------------------^“很抱歉,找不到具有 taio cruz标签“ 问题是: 如果用户输入http://www.blog-name.com/search/taio cruz,浏览器将查找名为“taio cruz”的文件夹,不是吗 如何获取值“Taio Cruz”?如果键入Cruz,浏览器将查找名为“Taio Cruz”的文件夹,不是
---------------------------------------------^
“很抱歉,找不到具有 taio cruz标签“ 问题是: 如果用户输入
http://www.blog-name.com/search/taio cruz
,浏览器将查找名为“taio cruz”的文件夹,不是吗
如何获取值“Taio Cruz”?如果键入Cruz,浏览器将查找名为“Taio Cruz”的文件夹,不是吗?如果要为当前页面执行此操作,可以将
$url
替换为$\u SERVER['REQUEST\u URI']
。我只是展示了一种通用的方法。@Bernaz您必须将这种方法与modrewrite结合起来,通过一个可能与请求的URL不匹配的PHP文件来路由请求。这有一个明显的缺点,就是必须找到所有斜杠,并为一个简单的问题创建一个中间数组。@Emil这是一个干净的解决方案。性能并不会受到太大的影响,而且一开始也没那么重要。不,这不是一个干净的解决方案。我同意性能损失可能是微乎其微的,但根据我的定义,创建中间数组(包括在内存中分配空间、构建哈希桶等)并不干净。@Emil这是一个干净的解决方案,因为它可读性强,易于理解。使用strrpos
(虽然方便而且可能更高效)很难理解,因为函数的名称很糟糕。你太过担心内部结构了,关键是要利用抽象对你有利。每个人都知道strpos和friends做什么(或者,至少,如果他们以编写PHP代码为生的话,应该这样做)。按照您的逻辑,您的代码也可以在一次大爆炸中结束世界。我认为这很懒惰,尤其是因为写它们的复杂性几乎是一样的。请看下面的例子:
"http://www.blog-name.com/search/taio cruz"---------------------------------------------^
"Sorry, no posts were found with the tag taio cruz"
$url = 'http://www.blog-name.com/search/taio cruz';
$last = substr($url, strrpos($url, '/') + 1);
//$last is now "taio cruz"
$url = 'http://www.blog-name.com/search/taio cruz';
$val = end(explode('/', $url));
// $val is now 'taio cruz'
echo basename("http://www.blog-name.com/search/taio cruz"); //taio cruz