Выполнив поиск на сайте MSN Search, вы можете заметить внв ницы с результатами маленькую оранжевую картинку с «RSS». Щелкнув по ней, вы перейдете на новую страницу, где i доставят URL для подписки на поиск по данной фразе:http://search.msn.com/results;aspx?q=[SEARCHTERM]&format=rss
Теперь, вооружившись полученным знанием, вы сможете напис верную часть виджета, который и обеспечит возможность поис ти. Серверный сценарий мы напишем на PHP. URL серверной» приложения, на который будут отправляться запросы, выглл мерно так:
websea rch.php?sea rch=[SEARCHTERM]
В строке запроса имеется всего один параметр: search. И прв должно извлекать этот параметр запроса. Программный код ( го сценария очень напоминает виджет со сводкой новостей.
header("Content-Type: text/xml"); header("Cache-Control: no-cache");
if ( isset($_GET["search"]) ) {
SsearchTerm = urlencode( stripslashes($_GET["search"]) );
$u rl = "http;//sea rch. msn .'com/results. aspx?q=$searchTerm&f о rmat=rss":
$xml = file_get_contents($url); *
echo ,$xml; " • . ,
Первые две строки не требуют комментариев, они устанавливают заго¬ловки, необходимые для корректной обработки данных броузерами. Вследующей строке с помощью вызова функции isset.() из строки за¬проса извлекается параметр search.
Прежде чем искомая фраза (значение параметра search) будет отправ¬лена поисковой системе, она должна пройти предварительную обра¬ботку. Сначала она передается функции stripslashes(). Если конфигу¬рация РНР предусматривает режим экранирования символов специ¬ального назначения (по умолчанию), то любые кавычки, попадающие в механизм РНР, автоматически экранируются символом обратного слеша: \"искомая фраза\". Функция stripslashes() удаляет экранирую-лсие символы, т. е. предыдущая фраза на выходе функции будет иметь вид "искомая фраза". После удаления экранирующих символов строка передается функции urlencode(), кодирующей все не алфавитно-циф¬ровые символы в специальное представление. Кодируются пробелы, кавычки, амперсанды и подобные им символы.
Если содержимое искомой фразы не пройдет эту обработку, сервер MSN вернет код ошибки 400: Bad Request.
Искомая фраза, подготовленная к отправке, включается в URL, кото¬рый сохраняется в переменной $url. И наконец, функция f ile_get_con-tents() открывает удаленный файл, читает его и возвращает содержи¬мое файла в виде строки, записываемой в переменную $xml, которая и отправляется клиенту с помощью команды echo.