我有一个简单的 cakePHP 操作,可以通过 url 参数查找某人通过其标题发布的帖子。:
最近,有一篇帖子在标题中包含一个冒号( ),蛋糕被解释为一个命名参数。
虽然用
str_replace(':', 'BANANA!_replace_colons, YAY safenow', $name)
我很好奇是否有标准或更优雅的方式来做到这一点。
我有一个简单的 cakePHP 操作,可以通过 url 参数查找某人通过其标题发布的帖子。:
最近,有一篇帖子在标题中包含一个冒号( ),蛋糕被解释为一个命名参数。
虽然用
str_replace(':', 'BANANA!_replace_colons, YAY safenow', $name)
我很好奇是否有标准或更优雅的方式来做到这一点。
如果你想在 url 中传递它,你总是可以对标题进行 urlencode。
如果帖子标题是“foo:bar”而不是
/post/foo:bar
你应该有
/post/foo%3Abar
因为稍后您可能有一个包含斜线的帖子标题,/
并且您必须添加另一个 str_replace... 或者可能会有带有重音符号的字符。
在我的情况下,我总是在表格上有一个名为“title_url”的第二个字段,它是标题的Slug,我title_url
在 url 中使用它。所以在我的例子中,网址是这样的
/post/foo_bar
这比 urlencode 更易于阅读。
但是,路由器上有一个名为“贪婪之星”(/*
)和“尾随之星”(/**
)的选项。即使它们包含特殊字符,它们也会帮助您捕获参数
希望这可以帮助
我刚刚使用 array('action' => 'view', 'name' => $name); Cake 似乎能够很好地处理第一个冒号之后的所有内容。