Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
CHATenok Посетитель


Зарегистрирован: May 27, 2006 Сообщения: 8 Откуда: Арзамас
|
|
Много раз видел просьбы на различных сайтах о помощи в создании скриптов для мастеров. Вот специально для таких людей открыл эту тему. Смотрите, задавайте вопросы, оставляйте коментарии.
P.S. На одном из сайтов я писал уже эту статью и выкладывал скрипт.
P.P.S. Паралельно буду комментировать действия скрипта
P.P.P.S Скрипт на 99% работает (найдете ошибку - считаейте за улыбку)
Код: |
<?
header("content-type:text/plain");
// кодировка для мастера
$addr = "http://www.rbc.ru/index.html";
// адрес страницы
$begblock = "USD ЦБ РФ";
// идентификатор начала блока
$begin = "<FONT SIZE=\"-2\">";
// фрагмент HTML-кода до полезных данных (до самого курса)
$end = "</FONT>";
// фрагмент HTML-кода после полезных данных (после курса)
$result = array();
// массив строк результата
$screen = file($addr);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kursdollar = $temp[0];
// идет открытие файла, выборка нужной информации
$date = date("d.m.y - H:i:s");
// Дата запроса (чтоб выводилось MASTER ImyaMastera ДАТА КУРС)
$kurs = "MASTER ImyaMastera> Курс доллара ( $date ) : 1 USD = $kursdollar рублей";
// Думаю тут понятно : присвоение значению $kurs текста
echo "$kurs";
// Выводим курс доллара (можно и при помощи print)
exit;
?>
|
Впринципе можно добавить и историю запросов (думаю для начала хватит в .txt)
Вот вставить к примеру следующее в скрипт описанный выше
Код: |
<?
$zapros_kurs = "Произведен запрос в $date участником с ником $nick текущим account $account из региона $region";
// В каком виде будет записыватся файл истории запроса
$history=fopen("history.txt","a");
// Открываем файл history.txt (не забудьте установить ПРАВА 755 или 777)
fputs($history,"\r\n $zapros_kurs");
// Производим запись
fclose($history);
// Закрытие файла
?>
|
Можно СДЕЛАТЬ и отправку статистики запроса к курсу доллара при каждом запросе на email
вставив следующюю часть блока (но единственное неудобство, если будет 100 запросов, то вам придется прочитать 100 писем). Этот блок можно
написать и по-другому, к примеру отправка статистики за сутки. Но это по-позже.
Код: |
<?
$to = "[email protected]";
// email куда будет отправлятся сообщение
$Subject = "Вызов курса доллара";
// тема сообщения
$stat = "СТАТИСТИКА : $zapros_kurs";
mail("$to", "$Subject", "$stat" );
// отправка на мыло
exit;
?>
|
Теперь сохраните файл к примеру с названием index.php и поместите на сайт
ДЛЯ ПОЛНОТЫ КАРТИНЫ НАПИШЕМ И ССЫЛКУ КОТОРУЮ ВЫ УСТАНОВИТЕ ДЛЯ ЭТОЙ СТРАНИЦЫ командой
MASTER ImyaMastera SETURL http://vash_sajt.ru/index.php?pid=%pid%&nick=%nick%&account=%account%region=%region%
Аналогично можно вытащить все курсы валют, ДЕРЗАЙТЕ :)
ВЕСЬ СКРИПТ
Код: |
<?
header("content-type:text/plain");
$addr = "http://www.rbc.ru/index.html";
$begblock = "USD ЦБ РФ";
$begin = "<FONT SIZE=\"-2\">";
$end = "</FONT>";
$result = array();
$screen = file($addr);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kursdollar = $temp[0];
$date = date("d.m.y - H:i:s");
$zapros_kurs = "Произведен запрос в $date участником с ником $nick текущим account $account из региона $region";
$history=fopen("history.txt","a");
fputs($history,"\r\n $zapros_kurs");
fclose($history);
$to = "";
$Subject = "Вызов курса доллара";
$stat = "СТАТИСТИКА : $zapros_kurs";
mail("$to", "$Subject", "$stat" );
$kurs = "MASTER ImyaMastera> Курс доллара ( $date ) : 1 USD = $kursdollar рублей";
$kurs = str_replace(" ", '', $kurs);
echo "$kurs";
exit;
?> |
_________________ Кулер тоже вертолет, только маленький еще! |
|
Вернуться к началу |
|
 |
Franchiser Посетитель


Зарегистрирован: May 15, 2006 Сообщения: 4
|
|
очень интересная тема в плане применения к другим сайтам, однако я как не профу в пхп хотелось бы более подробно разобраться, как это на практике применить... что такое идентификатор? Это то откуда начинается что ли? как его выбирать...Посмотрел сайт и не понял который берется <FONT SIZE="-2"> конкретно и где кончается <FONT> там где тока валюта доллар или вообще таблица...
и что делает эта вещь...
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
Этот кусок всегда такой или он меняется в зависимости от сайта...
Прошу прощения за дурацкие вопросы... |
|
Вернуться к началу |
|
 |
CHATenok Посетитель


Зарегистрирован: May 27, 2006 Сообщения: 8 Откуда: Арзамас
|
|
Цитата: | Посмотрел сайт и не понял который берется <FONT SIZE="-2"> конкретно и где кончается <FONT> там где тока валюта доллар или вообще таблица... |
посмотрите страницу в виде html кода. FONT заканчивается только для курса валют
все остальное расписано вверху страницы.... _________________ Кулер тоже вертолет, только маленький еще! |
|
Вернуться к началу |
|
 |
Franchiser Посетитель


Зарегистрирован: May 15, 2006 Сообщения: 4
|
|
Еще раз что такое идентификатор блока? Это конкретно привязано к странице, или любое название м.б....
И не пойму какой фонт берется там же их 3... Как программа определила что он относится именно к доллару....
Код: | <TD><a href="http://stock.rbc.ru/demo/cb.0/daily/USD.rus.shtml?show=3M"><FONT COLOR="#333333" SIZE="-2">USD ЦБ РФ</FONT></a></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-2">07/06</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-2"> 26.7331</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-2" COLOR="green">0.0242</FONT></TD>
</TR> |
и по этому какие нить комментарии...
Код: | $i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
|
|
|
Вернуться к началу |
|
 |
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы не можете скачивать файлы в этом форуме
|
| |