2011-07-21 57 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); 

干杯!

相关问题