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

問題:

問題が str_replace にあることを知らcategoryずに返されるのは、間違っているのではありませんか? /subcategoryそれを手伝ってもらえますか?

私は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 に答える