如果网址中包含撇号,我的缓存存在问题。
例如: www.example.com/controller/action/What's+My+Name
首次加载高速缓存不存在时,它加载正常。但是,一旦 创建缓存后,页面的后续加载会导致PHP语法 错误,因为在缓存文件中有一行:
$ controller-> here = $ this-> here ='/ controller / action /我的名字是什么?';
请注意,撇号未被转义,因此PHP语法错误。
我该如何解决这个问题?这被认为是Cake中的错误吗?
感谢。
答案 0 :(得分:0)
使用PHP的urlencode()
函数,对URL中可能包含非字母数字字符的组件进行编码,然后再将其传递给HtmlHelper::link
或者你有什么。
您可能还想考虑一个更大的问题,即首先在您的网址中使用非字母数字是否是一个好主意,是否真的需要这样做。
答案 1 :(得分:0)
回到原来的答案 - 你生成了无效的URL,并且某种程度上期望框架不会中断?
要么逃避它们(urlencode)服务器端,要么为url生成一个slug。
滥用你正在做的网址会导致不一致的结果 - 客户端和CakePHP端。这不是一个模棱两可的案例 - 你做错了。