Как получить аргумент URL в теле страницы с помощью PHP? - PullRequest
5 голосов
/ 20 января 2011

На сайте Drupal PHP-код включен для содержимого тела страницы.Как я могу получить аргумент и его значение в коде PHP?Например, я хотел бы получить 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 или 33002.

Спасибо!

Ответы [ 3 ]

13 голосов
/ 11 декабря 2014

Вы можете использовать drupal_get_query_parameters () следующим образом:

$params = drupal_get_query_parameters();

if (isset($params['ref']) && is_numeric($params['ref'])) {
  var_dump(check_plain($params['ref']));
}
10 голосов
/ 20 января 2011

Используйте это:

<?php
$a=$_REQUEST['ref'];
echo "The value of the ref parameter is ".$a;
?>
6 голосов
/ 20 января 2011

Решение с помощью метода crowicked работает, но «путь Drupal» заключается в передаче значения ref в качестве аргумента url, то есть:

http://example.com/node/1/33002

Теперь вы можете получить доступ к значению ref, используя функцию arg ():

$ref = arg(2);

Конечно, такой подход может работать, только если значение ref всегда является третьим аргументом.

Несмотря на то, что приведенный выше код работает, не рекомендуется размещать php-скрипты в теле узла. Это делает ваш сайт сложнее поддерживать и отлаживать. Придет день, когда редактор случайно удалит ваш php-узел, тем самым нарушив ваш сайт.

Если у вас есть php-скрипт, который вы хотите запустить, лучше всего добавить на сайт простой пользовательский модуль, который реализует hook_menu. Чтобы узнать больше о hook_menu, загляните в Модуль Пример меню или hello world module .

Наконец, независимо от выбранного вами метода (узлы php или пользовательский модуль), всегда проверяйте правильность ввода URL, например, с помощью check_plain () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...