Главная
Новости
Статьи и обзоры
Горожанин
Обнинск в Internet
Web Design
Hardware
Software
Безопасность
Серфинг
Игродром
Relax
Технологии
Web-обзор
Интернет-ликбез
Опросник
УП-Технологии
ART.net
Ссылки
Архив
О нас
Контакты
Форумы
Основатель: К.Николаенко
Главный Редактор: С.Коротков
Web Design: Neutron
|
|
= Web-Дизайн =
С МИРУ ПО НИТКЕ!
Матвей Хорошилов lightnet@obninsk.ru
взято с www.iworld.ru
продолжение: начало в #13(125)
Создадим файл kurs.php и проинициализируем в его начале необходимые для работы переменные:
<?
// адрес страницы
$adr = `http://www.rbc.ru/index.html`;
// идентификатор начала блока
$begblock = `USD ЦБ РФ</FONT>`;
// фрагмент HTML-кода до полезных данных
$begin = `<FONT SIZE="-2"> `;
// фрагмент HTML-кода после полезных данных
$end = `</FONT>`;
// массив строк результата
$result = array();
// цвет рамки таблицы курса (белый)
$brdcolor = `#ffffff`;
// цвет фона ячеек результирующей таблицы
$bgcolor = `#eeeeee`;
Для загрузки удаленной страницы вполне подойдет встроенная в РНР функция чтения содержимого файла file($addr), где в качестве $addr можно использовать URL интересующего нас документа. Содержимое страницы записывается в переменную, являющуюся сссылкой на массив отдельных строк. Перебирая циклически все элементы массива, найдем фрагмент, определяющий начало информационного блока. Количество строк Элементов массива) можно определить с помощью встроенной функции sizeof($array), а наличие фрагмента в строке - функцией strpos($array[$i], $begblock), которая возвращает false, если его там нет, и его позицию в противном случае.
Перебор осуществляется с помощью оператора цикла while. Не следует забывать, что нумерация элементов массива начинается в РНР с нуля и именно этим значением должна быть проинициализирована переменная счетчика $i.
$screen = file($adr);
$i = 0;
while ($i < sizeof($screnn)
&& strpos($screen($i), $begblock) == false) {
$i++;
}
В результате выполнения этого фрагмента программы в переменной $i окажется номер строки документа, в которой находится последовательность символов, указывающая на начало информационного блока.
Напомним, что значение курса доллара находится в строке с номером $i+2. Для того, чтобы извлечь его оттуда, воспользуемся функцией explode($separator, $string). Эта функция разбивает строку на массив подстрок и в качестве первого аргумента получает разделитель, а в качестве второго - исходную строку. Например, результатом выполнения функции explode("+", "a+b+c") будет массив строк ("a", "b", "c").
Применив функцию explode к строке с курсом доллара дважды и использовав в качестве разделителя фрагменты кода, стоящие до и после полезных данных, мы тем самым удалим эти фрагменты из строки и выделим требуемое нам значение:
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, #temp);
$kurs = $temp(0);
Таким образом мы получили текущее значение курса доллара в переменной $kurs. Осталось вывести эту информацию в окно браузера. Удобнее всего сделать это в виде таблицы, цвета ячеек и границ которой указаны в начале программы. Это осуществляется с помощью функции вывода echo. Для того, чтобы вставить в HTML-код значения определенных нами в программе переменных, следует использовать оператор конкатенации строк ".". Для того, чтобы кавычки, обозначающие начало и конец строки в РНР, обрабатывались корректно и не смешивались с кавычками, обрамлящими атрибуты HTML, последние следует предварять метасимволом "\". Символ конца строки обозначается в РНР последовательностью "\n":
echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"".
"border=\"0\" bgcolor=\"".$brdcolor."\"><tr><td>\n".
"<table width=\"100%\" cellpadding=\"2\" cellspacing=\"1\" border=\"0\">".
"<tr><td bgcolor=\"".$bgcolor."\">курс USD</td></tr><tr>\n";
"<<td bgcolor=\"$bgcolor\">".$kurs."</td>".
"</tr></table></td></tr></table>";
// rjytw ghjuhfvvs
?>
Результатом выполнения программы будет таблица, состоящая из одной ячейки в рамке, где и будет находиться текущее значение курса доллара.
Продолжение следует...
|
|