|
Проверка баланса на ФО с оповещением по SMS (oron)
|
|
09.06.2012, 12:22
|
|
#1
|
Регистрация: 26.05.2012
Сообщений: 7
|
Проверка баланса на ФО с оповещением по SMS (oron)
|
Здравствуйте, решил поучавствовать в конкурсе, и написал небольшую статью о скрипте, который проверяет баланс на ФО (на примере oron.com) и отправляет SMS в случае его изменения.
Скрипт написан на языке PHP без использования базы данных (работает с файлом).
Для того, чтобы вы могли отправлять себе SMS необходимо зарегистрироваться на сайте littleSMS (реф, нереф). СМС по России стоит 0.35 рубля, по СНГ 0.9 рубля.
Приведу пояснения для скрипта:
Подключаем 2 библиотеки:
phpQuery - библиотека для парсинга сайтов, синтаксис схож с jQuery. Достаточна быстра.
littleSMS - библиотека для работы с сервисом отсылки SMS.
<?php
require_once(dirname(__FILE__).'/phpQuery/phpQuery/phpQuery.php');
require_once(dirname(__FILE__).'/littleSms/LittleSMS.class.php');
Код, который с помощью CURL логинится на сайта oron.com и парсит баланс, в случае его изменения отправляет СМС.
$login = 'ваш логин';
$password = 'ваш пароль';
$result = ex_curl("http://oron.com/login", false, false, null, "login=" . $login . "&password=" . $password . "&op=login&redirect=&rand=", NULL);
$document = phpQuery::newDocument($result);
$balance = $document->find('div#optidiv table a:first')->html();
$handle = fopen("oron.txt", "a+");
while (!feof($handle)) {
$oldBalance = fgets($handle, 4096);
}
fclose($handle);
if ($balance && $balance != $oldBalance)
{
$handle = fopen("oron.txt", "w");
fwrite($handle, $balance);
fclose($handle);
$sms = new LittleSMS('ваш email, который вы указали на little sms', 'api-key');
$sms->sendSMS('ваш телефон', $balance);
}
Функция для работы с CURL
function ex_curl($url,$get=true,$headers=false,$cookie=NULL,$fields=NULL,$referrer=NULL){
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_ENCODING,'gzip, deflate');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6');
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__)."/coo.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__)."/coo.txt");
if(!$get){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
}
if($cookie!='') {
curl_setopt($ch,CURLOPT_COOKIE,$cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
}
if($headers) curl_setopt($ch,CURLOPT_HEADER,1);
if($referrer!='') curl_setopt($ch,CURLOPT_REFERER,$referrer);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$rt = curl_exec($ch);
curl_close($ch);
return $rt;
}
Код из статьи выложил тут check-oron.rar (266.6 Kb)
Далее выполнение скрипта закидываем в cron (linux) или пишем .bat файл и отправляем его в планировщик, если будет необходимость напишу об этом подробнее.
|
|
|
09.06.2012, 18:55
|
|
#2
|
Регистрация: 02.07.2011
Сообщений: 219
|
можно и бесплатно.
например, у мегафона есть бесплатный сервис "'электронная почта через смс".
http://dv.megafon.ru/services/internet/mail/email2sms.html#receiving
подключаете услугу, регистрируете мыло где-нибудь, настраиваете переадресацию на мегафоновское мыло, скриптом парсите стату и посылаете на почту.
|
|
|
11.06.2012, 01:05
|
|
#3
|
Регистрация: 15.01.2012
Сообщений: 28
|
за старание плюсанул сам знаю как оно кодинг
|
|
|
12.06.2012, 08:56
|
|
#4
|
Регистрация: 26.05.2012
Сообщений: 7
|
Немного модифицировал скрипт, теперь отсылает и файлик с которого была последня продажа и сумму продажи.
if ($balance && $balance != $oldBalance)
{
$handle = fopen("oron.txt", "w");
fwrite($handle, $balance);
fclose($handle);
$stats = phpQuery::newDocument(ex_curl("http://oron.com/?op=my_stats", true, false, null, null, NULL));
$sale_href = $stats->find('table.tbl2 tr:last')->prev()->find('td:first a:first')->attr('href');
$sales = phpQuery::newDocument(ex_curl("http://oron.com/" . $sale_href, true, false, null, null, NULL));
$sale_file = $sales->find('table.tbl2 tr:first')->next()->find('td:last')->prev()->find('a')->html();
$sale_amount = $sales->find('table.tbl2 tr:first')->next()->find('td:last')->prev()->prev()->html();
$sms = new LittleSMS('ваш email, который вы указали на little sms', 'api-key');
$sms->sendSMS('ваш телефон', $balance . ' ' . $sale_amount . ' ' . $sale_file);
}
$sale_file - файл с которого была последняя продажа.
$sale_amount - сумма последней продажи.
|
|
|
14.06.2012, 01:46
|
|
#5
|
Регистрация: 29.03.2012
Сообщений: 196
|
Я бы не стал юзать такой скрипт, телефоны в СНГ такая штука, что их прослушивают направо и налево Еще не хватало чтобы статистика попадала к пацанам в шлемаках
|
|
|
14.06.2012, 02:06
|
|
#6
|
Регистрация: 26.05.2012
Сообщений: 7
|
Сообщение от Kamatozzza
Я бы не стал юзать такой скрипт, телефоны в СНГ такая штука, что их прослушивают направо и налево Еще не хватало чтобы статистика попадала к пацанам в шлемаках
| Необязательно присылать себе сумму, если есть страх по этому поводу. Можно присылать смс "сходи в магазин", "вынеси мусор", мона массив сделать непаливных дел
На днях появилась идея создания класса для рассылки бесплатных смсок с помощью нотификатора Google Calendar. Если люди будут пользоваться и темка будет популярной то когда допишу - выложу тут
|
|
|
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)
|
|
|