0

这是我的代码:

$produrl = '/'. basename(str_replace(".html","",$_cat->getUrl())) .'/' . basename($_product->getProductUrl()) ; 

$_cat->getUrl()返回这个:

http://website.com/category/subcategory.html

我需要:对于 $produrl 的一部分basename(str_replace(".html","",$_cat->getUrl()))返回category/subcategory

问题:

它只有在我category/subcategory知道问题出在 str_replace 的情况下才会回馈,不是吗?你能帮我解决这个问题吗?

请注意我有2个案例:

  1. 有时我得到http://website.com/category/subcategory.html.

  2. 有时http://website.com/category.html

我希望它可以与他们一起工作:)

4

2 回答 2

2

您应该改用 parse_url :

$url = parse_url($_cat->getUrl());
$produrl = str_replace(".html","",$url['path']);
于 2013-03-15T13:50:02.743 回答
0

问题是您正在使用该basename()功能。

看看它的文档:http: //php.net/manual/en/function.basename.php

它只会返回“/”(正斜杠)或“\”(反斜杠,对于 Windows)之后的尾随字符串。

于 2013-03-15T13:49:43.507 回答