#php
#php
Вопрос:
Я пытаюсь создать скрипт, который может находить и идентифицировать идентификатор партнера Amazon по URL-адресу.
Я знаю, что идентификатор партнера появляется после параметра «amp;tag=», но его местоположение в URL-адресе не всегда соответствует. Иногда он находится посередине:
http://www.amazon.com/gp/goldbox?amp;tag=adamcarolla09-20amp;camp=217705amp;creative=406565amp;linkCode=ur1amp;adid=1S1WPEJM5M1Y1RRW2875amp;
Иногда это в конце:
http://www.amazon.com/?_encoding=UTF8amp;camp=1789amp;creative=9325amp;linkCode=ur2amp;tag=schlockmercenary
Как я могу написать скрипт, который просматривает URL-адрес и возвращает только тег, независимо от его позиции в строке?
Ответ №1:
Вы можете использовать PHP parse str:
<?php
// ...
parse_str($url, $output);
echo $output['tag'];
?>
Комментарии:
1. Кому-нибудь это может помочь: всегда не забывайте передавать второй параметр в
parse_str()
, иначе вы автоматически введете кучу переменных в локальную область видимости. Это плохо по очевидным причинам
Ответ №2:
Сделайте это:
$tag = strstr($url, "tag=");
$tag = substr($tag, 4, strlen($tag) -4 -strlen(strstr($tag, "amp;")));
$tag = urldecode($tag);
Комментарии:
1. При этом не анализируются возможные специальные символы URL