我使用Zend的URL視圖助手來建立我的網址。除了一件事之外,任何事物都可以正常工作:用於替換url中空格的字符是加號(+)。我希望它是一個'分鐘'( - )。我該如何改變這一點?如何更改Zend Url的分隔字符?
實施例: 現在:/ NL /呼號/ bericht/3 /標題/ NIEUWE ** + affiches 願望:/ NL /呼號/ bericht/3 /標題/ NIEUWE - ** affiches
非常感謝!
我使用Zend的URL視圖助手來建立我的網址。除了一件事之外,任何事物都可以正常工作:用於替換url中空格的字符是加號(+)。我希望它是一個'分鐘'( - )。我該如何改變這一點?如何更改Zend Url的分隔字符?
實施例: 現在:/ NL /呼號/ bericht/3 /標題/ NIEUWE ** + affiches 願望:/ NL /呼號/ bericht/3 /標題/ NIEUWE - ** affiches
非常感謝!
這不是在任何地方的文檔中,但看起來Zend URL視圖助手可以在它的$urlOptions
數組中調用參數chainNameSeparator
。不保證這就是你要找的東西,但試着玩,看看它是否會改變任何東西。
這可能是因爲,默認情況下,Zend_View_Helper_Url
將urlencode()
您發送的內容,它會將空格轉換爲+
。我的建議是爲代碼中的URL類型創建一個新的視圖助手,它需要特殊的變形。
喜歡的東西:
class Default_View_Helper_SpecialUrl extends Zend_View_Helper_Abstract
{
public function specialUrl(array $opts = array(), $name = null, $reset = false, $encode = true)
{
if (!empty($opts['whatever'])) {
$opts['whatever'] = str_replace(' ', '-', $opts['whatever']);
}
$router = Zend_Controller_Front::getInstance()->getRouter();
return $router->assemble($opts, $name, $reset, $encode);
}
}
這樣的空間改變任何必要的路由參數的URL編碼發生路由器之前。
這是在其中一個參數上發生'urlencode()'的結果。鏈接路由時使用'chainNameSeparator'。我想也許你在'Zend_Controller_Dispatcher_Abstract'中想着'setWordDelimiter()'。 – awgy 2010-05-08 15:53:09
啊,我知道了 - 自從使用ZF以來已經有一段時間了。 – ABach 2010-05-08 18:05:13