如何通过PHP获取Page body中的URL参数?

时间:2011-01-20 08:07:32

标签: php drupal

在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,但1ref没有。

谢谢!

3 个答案:

答案 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()

相关问题