我用的是Joomla!3.3,我的实际URL是这样的:
my_domain.com/component/newsletter/unsubscribe/email-domain.com/25
组件的router.php:
function newsletterBuildRoute(&$query) {
$segments = array();
$segments[] = $query['method'];
$segments[] = $query['email'];
$segments[] = $query['id'];
unset($query['method']);
unset($query['email']);
unset($query['contact_id']);
return $segments;
}
function newsletterParseRoute($segments) {
$vars = array();
$vars['method'] = $segments[0];
$vars['email'] = $segments[1];
$vars['contact_id'] = $segments[2];
return $vars;
}
但是当我尝试这个时:
echo JFactory::getApplication()->input->get('email');
我得到:
emaildomain.com // '@' is stripped
并且当我在url中放入任何非英文字符时,它也会被剥离。
你知道为什么会这样吗?
p。S:我在全局配置中将unicode别名设置为yes
如果您参考JInput的Joomla文档,您将看到有作为参数添加的过滤器:
http://docs.joomla.org/Retrieving_request_data_using_JInput那么你可以试着这样做:
echo JFactory::getApplication()->input->get('email', null, 'RAW');
我使用null
作为第二个参数,这应该是默认值。