Еженедельник Свет в Интернет

Главная

Новости

Статьи и обзоры
  Горожанин
  Обнинск в Internet
  Web Design
  Hardware
  Software
  Безопасность
  Серфинг
  Игродром
  Relax
  Технологии
  Web-обзор
  Интернет-ликбез
  Опросник
  УП-Технологии
  ART.net

Ссылки

Архив

О нас

Контакты

Форумы


Основатель:
К.Николаенко

Главный Редактор:
С.Коротков

Web Design:
Neutron


Наш спонсор






Порт POPULAR.RU
POPULAR.RU RegionalBanner Network.






Океан


НПП Метра - промышленные электронные автомобильные вагонные весы
Goldy Interior - салон офисной мебели: кабинеты руководителей, мебель для персонала

= 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">&nbsp;`;
// фрагмент 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
?>

Результатом выполнения программы будет таблица, состоящая из одной ячейки в рамке, где и будет находиться текущее значение курса доллара.

Продолжение следует...

Copyright © Свет в Internet   Designed by Свет в Internet