2011-07-21 59 views
3

我需要將路徑作爲參數傳遞給網址,例如 /控制器/動作/我的路徑,但我的路徑包含正斜槓例如/dir1/dir2/file.php 是否有任何方式將此路徑作爲單個參數傳遞,或者是否需要將路徑分解爲/Controller/Action/Param1/dir1/Param2/dir2/Param3/file.php。一些示例代碼,將不勝感激如何編碼包含正斜槓的查詢字符串?

TIA蓮

回答

4

您可以使用URL視圖助手,例如:

echo $this->view->url(
      array(
      'controller' => 'somecontroller', 
      'action' => 'someaction',  
      'path'=>'/dir1/dir2/file.php') 
      ); 

這會導致:

public/somecontroller/someaction/path/%2Fdir1%2Fdir2%2Ffile.php 

url視圖助手自動使用url_encode來編碼您的參數(請參閱其他anwser)。

+0

嵌入link,你會得到 – Ephraim

-1

我回答了這個已經在這裏:

urlencoded Forward slash is breaking URL

我解決了這個用2個自定義函數,像這樣:

function slash_replace($query){ 

    return str_replace('/','_', $query); 
} 

function slash_unreplace($query){ 

    return str_replace('_','/', $query); 
} 

所以編碼我可以打電話:

rawurlencode(slash_replace($param)) 

並解碼我可以打電話

slash_unreplace(rawurldecode($param); 

乾杯!

相關問題