Есть php файлик небольшой, который парсит курс валют и возвращает табличку 2 х 4. Можно ли как то автоматизировать, чтобы этот php скрипт выполнялся каждое утро(к примеру) автоматически и результат, а именно табличка, отправлялась на почту?
Вычисления или сравнения?
#1
Отправлено 25 Январь 2012 - 14:45
Есть php файлик небольшой, который парсит курс валют и возвращает табличку 2 х 4. Можно ли как то автоматизировать, чтобы этот php скрипт выполнялся каждое утро(к примеру) автоматически и результат, а именно табличка, отправлялась на почту?
#2
Отправлено 25 Январь 2012 - 15:06
#3
Отправлено 26 Январь 2012 - 06:40
2012-01-26 03:36:02 - <br /> <b>Warning</b>: DOMDocument::loadHTML() [<a href='domdocument.loadhtml'>domdocument.loadhtml</a>]: htmlParseEntityRef: expecting ';' in Entity, line: 99 in <b>C:\Program Files\MSTL\
#4
Отправлено 26 Январь 2012 - 08:43
#5
Отправлено 26 Январь 2012 - 08:47
У меня локальная версия КБ. Если нет возможности запустить с крона КБ на хостинге, то как быть? Что необходимо настроить в локальном сервере КБ?
#6
Отправлено 26 Январь 2012 - 08:57
#7
Отправлено 26 Январь 2012 - 09:01
#9
Отправлено 26 Январь 2012 - 09:22
#10
Отправлено 26 Январь 2012 - 09:26
#11
Отправлено 26 Январь 2012 - 09:28
$html = file_get_contents('http://www.nbkr.kg');
/** создаем новый dom-объект **/
$dom = new domDocument;
/** загружаем html в объект **/
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
/** элемент по тэгу **/
$tables = $dom->getElementsByTagName('table');
/** получаем все строки таблицы **/
$rows = $tables->item(0)->getElementsByTagName('tr');
/** цикл по строкам надо 15 **/
foreach ($rows as $row)
{
/** все ячейки по тэгу **/
$cols = $row->getElementsByTagName('td');
/** выводим значения **/
if ( $schet == 14 ) {
$infoUSD = 'KGS/1 USD - '.$cols->item(0)->nodeValue;
}
if ( $schet == 15 ) {
$infoEUR = 'KGS/1 EUR - '.$cols->item(0)->nodeValue;
}
if ( $schet == 16 ) {
$infoRUB = 'KGS/1 RUB - '.$cols->item(0)->nodeValue;
}
$schet=$schet+1;
}
$info = $infoUSD."\n";
$info .= $infoEUR."\n";
$info .= $infoRUB."\n";
$info .= "\n\nCreated by Aerobot.";
$send_to = 'xxx@aero.kg' . ', ';
$send_to .= 'xxxxx@aero.kg';
$subject = "Курсы валют на сегодня для ТФ";
/* $info = "telo"; */
$headers = 'From: xx@aero.kg' . "\r\n" .
'Reply-To: xx@aero.kg';
mail($send_to, $subject, $info, $headers);
#12
Отправлено 26 Январь 2012 - 09:34
2. Фунция mail работает только на хостингах с почтовым сервером, на локальной версии его нет. Используйте функцию sendmail(тема, текст, адресат), она использует настройки smtp, добавленные вами в КБ.
#13
Отправлено 26 Январь 2012 - 09:39
#14
Отправлено 26 Январь 2012 - 10:01
#15
Отправлено 26 Январь 2012 - 10:08
2012-01-26 07:07:02 - Task terminated <br /> <b>Fatal error</b>: Call to undefined function fetch() in <b>C:\Program Files\MSTL\
Кусок кода, который поменялся в скрипте:
$html = fetch('http://www.nbkr.kg');
#16
Отправлено 26 Январь 2012 - 10:11
$snoopy = new Snoopy;
$html = $snoopy->fetch("http://www.nbkr.kg");
#17
Отправлено 26 Январь 2012 - 10:16
#18
Отправлено 26 Январь 2012 - 10:17
2012-01-26 07:16:02 - Task terminated <br /> <b>Fatal error</b>: Call to a member function getElementsByTagName() on a non-object in <b>C:\Program Files\MSTL\
#19
Отправлено 26 Январь 2012 - 10:26
$snoopy = new Snoopy;
$snoopy->fetch("http://www.nbkr.kg");
$html = $snoopy->results;
т.е. у вас была двойная ошибка, не сразу обратил внимание.
#20
Отправлено 26 Январь 2012 - 10:36
2012-01-26 07:35:02 - <br /> <b>Warning</b>: DOMDocument::loadHTML() [<a href='domdocument.loadhtml'>domdocument.loadhtml</a>]: htmlParseEntityRef: expecting ';' in Entity, line: 99 in <b>C:\Program Files\MSTL\
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 анонимных














