Захватить значение из строки URL с php - PullRequest
2 голосов
/ 04 декабря 2011

Мне нужно извлечь значение переменной из строки, которая является URL. Строка / url загружается как часть отдельного php-запроса, а не url в браузере.

URL будет выглядеть так:

index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44

Как я всегда могу найти и зафиксировать значение идентификатора, которое в этом примере равно 2773?

Я уже прочитал несколько примеров, но то, что я пробовал, фиксирует значение id текущей страницы, которая просматривается в браузере, а не строку URL.

Спасибо

Ответы [ 3 ]

6 голосов
/ 04 декабря 2011

Вы ищете комбинацию или parse_url (которая изолирует строку запроса для вас) и parse_str (которая будет анализировать переменные и помещать их вмассив).

Например:

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44';

// This parses the url for the query string, and parses the vars from that
// into the array $vars (which is created on the spot).
parse_str(parse_url($url, PHP_URL_QUERY), $vars);

print_r($vars); // see what's in there

// Parse the value "2773:xcelsiors" to isolate the number
$id = reset(explode(':', $vars['id']));

// This will also work:
$id = intval($vars['id']);

echo "The id is $id\n";

Посмотреть это в действии .

1 голос
/ 04 декабря 2011

Вы можете использовать parse_str

0 голосов
/ 04 декабря 2011

Вы можете использовать parse_url для разбора URL-адресов!

Но вы можете использовать, чтобы непосредственно извлечь номера переменной ID:

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44';
$id = preg_replace("/^.*[&?]id=([0-9]+).*$/",'$1',$url);
echo $id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...