Лучший способ проверить URL содержат строки и QueryString в PHP - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь определить, содержит ли 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 . '');
}

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Если есть строка запроса, она заполнит $_GET superglobal .Просто проверьте это и добавьте его обратно, используя http_build_query(), если это необходимо (это обеспечит любой выход из ситуации.)

$xurl = "http://example2.com/photos/";
if (!empty($_GET)) {
    $xurl .= "?" . http_build_query($_GET);
}
0 голосов
/ 21 сентября 2018

Разделите URL на части с помощью parse_url, а затем рассмотрите ближе, что вам нужно ... http://php.net/manual/de/function.parse-url.php

0 голосов
/ 21 сентября 2018

Вы должны проверить '?'в запросури, а не в индексе.

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 . '');
    }
...