Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2015, 17:34   #1
Karyuudo
Пользователь
 
Регистрация: 17.02.2008
Сообщений: 53
По умолчанию Как получить информацию об обновлении страницы с оповещением?

На сайте изредка публикуют новости.
Надо оперативно их получать - вышло объявление на сайте - пришло смс и я уже сам захожу на сайт и читаю.

Затруднение в том, что я не знаю целиком синтаксис пхп, только базу когда-то давно.

Алгоритм вижу возможно такой:
1. скачать страницу сайта
2.1 если скачанная страница=предыдущей версии, то ничего не делать.
2.2. если страница<>прошлой версии, значит были изменения, тогда:
3. отправить сообщение на почту, что страница изменилась.
4. на почте поставить смс оповещение на телефон
5. повторить все сначала при помощи крона например через 20 минут

Вот теперь собственно вопросы:
1. Может уже есть такие программы, и не надо изобретать велосипед?
я например знаю софт под винду такой. может и на пхп уже есть?
2. пойдет ли такой алгоритм, или есть способы лучше?
3. если пойдет, то какими функциями все это делать, в какую сторону гуглить?
типа скачать страницу, сравнить версии файлов (по размеру файла? или текст сравнивать?)

Спасибо!
Karyuudo вне форума Ответить с цитированием
Старый 27.01.2015, 17:35   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

а может там rss есть?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 27.01.2015, 17:39   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чтобы загрузить страницу — curl либо сторонние библиотеки типа Guzzle.

Для сравнения можно например смотреть дату последней новости. (HTML парсите, например, с помощью XPath запросов http://php.net/manual/en/class.domxpath.php)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 27.01.2015 в 17:43.
Alex11223 вне форума Ответить с цитированием
Старый 28.01.2015, 14:09   #4
Karyuudo
Пользователь
 
Регистрация: 17.02.2008
Сообщений: 53
По умолчанию

Вот такой код сохраняет в текстовый файл обычные сайты. А вот если там начинается на https то уже ничего не сохраняется, пустой файл.

PHP код:
<?php 

$link
='https://www.google.ru/';

$ch curl_init($link);
$fp fopen('news.txt'"w");

curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
пытаюсь нагуглить.. там какие-то длинные тексты с авторизацией предлагали вариант и т.п. пробовал их оставить, удавив её, но всеравно не работает. Что надо сюда вставить чтоб сохранил страницу с https? (логинится с логином и паролем не надо)


вот еще вариант нашел, но если с гуглом работает, то с нужным сайтом нет:

Код HTML:
Not Found
The requested URL /_Incapsula_Resource was not found on this server.

Подсказка Денвера

Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл Z:/home/news.ru/www/_Incapsula_Resource, которого не существует.
PHP код:
<?php
ini_set
('max_execution_time'600);
 
function 
curl_get($host$referer null){
    
$ch curl_init();
 
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_REFERER$referer);
    
curl_setopt($chCURLOPT_USERAGENT"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51");
    
curl_setopt($chCURLOPT_URL$host);
    
curl_setopt($chCURLOPT_TIMEOUT10);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse); 
 
    
$html curl_exec($ch);
    echo 
curl_error($ch);
    
curl_close($ch);
    return 
$html;
}
 

 
$result curl_get('https://panteon-finance.com/news.php');
 
echo 
iconv("utf-8""cp1251"$result);
?>

Последний раз редактировалось Karyuudo; 28.01.2015 в 14:45.
Karyuudo вне форума Ответить с цитированием
Старый 28.01.2015, 15:20   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вроде
Код:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0)
еще надо кроме CURLOPT_SSL_VERIFYPEER

UPD: а вообще не, у вас же вроде все грузится, HTTPS не причем.
Только вам сервер выдает Javascript с капчей (Incapsula) вместо самой страницы.

Может какие-то еще стандартные заголовки отправлять надо, как в обычном браузере, или юзерагент другой поставить, или куки принимать/использовать, чтоб ботом он вас не считал.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 28.01.2015 в 15:39.
Alex11223 вне форума Ответить с цитированием
Старый 28.01.2015, 18:20   #6
Dmitry33RU
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 62
По умолчанию

готов написать скрипт за денешку, если интересует напишите в личку на сайте.
Dmitry33RU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить информацию с HTML страницы? (Delphi) IOSIV Помощь студентам 17 27.08.2014 01:27
Windows Store приложение, как получить информацию с БД SevenXP Windows 0 13.05.2013 22:19
Сохранить данные при обновлении страницы apx_angel JavaScript, Ajax 2 11.10.2011 15:54
Как из большой таблицы получить информацию на отдельном листе Aspens Microsoft Office Excel 7 20.12.2010 00:26
Как получить информацию о БД? Belarus SQL, базы данных 1 14.07.2010 19:09