Козырные расклады Борис Вольфсон Хакер, номер #096, стр. 096-134-4 После того как в $pages помещено содержимое страниц, необходимо получить значение параметра q из запроса, переданного клиентским скриптом, и если запрос не пустой, пробежаться по массиву $pages и вывести содержимое страниц, которые содержат строку для поиска. Эмуляция поиска по сайту с выдачей результатов <?php // Массив с содержимым страниц сайта $pages = array(…); $query = $_GET['q']; $result = ''; if (!empty($query)) { foreach ($pages as $page) if (strstr($page, $query)) $result .= "<li>" . str_replace($query, "<strong>$query</strong>", $page) . "</li>"; if (!empty($result)) echo "<ol>$result</ol>"; else echo "По запросу \"$query\" ничего найдено!"; } else echo "Введите запрос для поиска"; ?> А где же XML? Хочу XML! Почему мы текст какой-то передаем, обещали же XML? Вообще, если посмотреть на название объекта XMLHttpRequest, то может показаться, что он создан только для передачи XML-данных. На буржуйских форумах и блогах, однако, часто выражается мнение, что это просто дань моде и можно использовать другие форматы - от чистого текста и HTML до текста на JavaScript. Но есть один существенный факт: при передаче данных в виде XML, они занимают меньше места и быстрее грузятся. Разберем такой пример. Есть XML-файл (возможно генерящийся скриптом), который содержит название и адрес некого банка :). Информация о банке в виде XML <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <bank> <bank_name>Банк Васи Пупкина</bank_name> <bank_address>ул. Ленинградская, 57</bank_address> </bank> Его надо получить, распарсить и вывести информацию в отформатированном виде. Сделать это очень просто с помощью объектов, встроенных в JavaScript: Получение и обработка информации о банке function getXmlRequest() { if (httpRequest.readyState == 4) { var xmlDocument = httpRequest.responseXML; var bankName = xmlDocument.getElementsByTagName('bank_name').item(0).firstChild.data; var bankAddress = xmlDocument.getElementsByTagName('bank_address').item(0).firstChild.data; document.getElementById(resultId).innerHTML = '<strong>Название банка: </strong>' + bankName + '<br />' + '<strong>Адрес банка: </strong>' + bankAddress; } } Если ты заметил, здесь в основном используются свойства и методы объекта responseXML, который представляет собой ответ сервера на запрос в виде XML. C ним довольно удобно работать, так как все необходимые функции встроены. Сама же ссылка будет выглядеть так: Вызов функции getXmlRequest в качестве параметра <a href="#" onclick="javascript:sendRequest('1.xml', 'result', getXmlRequest);">Кликни по мне, чтобы отправить запрос</a>. |