在Drupal站点上,为页面正文内容启用了PHP代码。如何在PHP代码中获取参数及其值?例如,我想从{<1}}和ref
获取:
33002
在以下代码中:
http://example.com/node/1?ref=33002
我可以<?php
print arg(0);
print arg(1);
print arg(2);
print arg(3);
?>
和node
,但1
或ref
没有。
谢谢!
答案 0 :(得分:13)
您可以按如下方式使用drupal_get_query_parameters():
$params = drupal_get_query_parameters();
if (isset($params['ref']) && is_numeric($params['ref'])) {
var_dump(check_plain($params['ref']));
}
答案 1 :(得分:10)
使用此:
<?php
$a=$_REQUEST['ref'];
echo "The value of the ref parameter is ".$a;
?>
答案 2 :(得分:6)
Crowicked的解决方案有效,但“Drupal方式”是将ref值作为url参数传递,即:
http://example.com/node/1/33002
现在您可以使用arg()函数访问ref值:
$ref = arg(2);
当然,只有当ref值始终是第三个参数时,这样的方法才有效。
即使上面的代码有效,也不建议将php脚本放在节点体中。它使您的网站难以维护和调试。当编辑器意外删除您的php节点时,将会破坏您的网站。
如果你有一个想要运行的php脚本,最好的方法是在你的站点上添加一个简单的自定义模块来实现hook_menu。请查看Menu Example module或此hello world module以了解有关hook_menu的更多信息。
最后,无论您选择哪种方法(php节点或自定义模块),请始终确保清理网址输入,例如使用check_plain()。