Я пытаюсь определить, содержит ли URL строку или строку со строкой запроса , а затем назначить ему другую функцию.
Код, приведенный ниже, - это всеЯ могу думать, и это не работает.
Какой лучший способ проверить это?
url 1 = http://example.com/index.php url 2 = http://example.com/index.php?some-test-page if (stripos($_SERVER['REQUEST_URI'], 'index')){ $xurl="http://example2.com/photos/"; } else { $req_url = $_SERVER['QUERY_STRING']; $xurl=('http://example2.com/photos/' . $req_url . ''); }
Если есть строка запроса, она заполнит $_GET superglobal .Просто проверьте это и добавьте его обратно, используя http_build_query(), если это необходимо (это обеспечит любой выход из ситуации.)
$_GET
http_build_query()
$xurl = "http://example2.com/photos/"; if (!empty($_GET)) { $xurl .= "?" . http_build_query($_GET); }
Разделите URL на части с помощью parse_url, а затем рассмотрите ближе, что вам нужно ... http://php.net/manual/de/function.parse-url.php
Вы должны проверить '?'в запросури, а не в индексе.
url 1 = http://example.com/index.php url 2 = http://example.com/index.php?some-test-page if (stripos($_SERVER['REQUEST_URI'], '?') === false ){ $xurl="http://example2.com/photos/"; } else{ $req_url = $_SERVER['QUERY_STRING']; $xurl=('http://example2.com/photos/' . $req_url . ''); }