Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Получение данных и запись в файл / 9 сообщений из 9, страница 1 из 1
29.02.2016, 12:35
    #39181254
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
Добрый день,

Прошу помочь написать скрипт на php который с интервалом в 1 час будет обращаться на сайт и забирать курсы далее записывать их в файл и сохранять на самом же сервере
...
Рейтинг: 0 / 0
29.02.2016, 12:46
    #39181277
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
помогите написать и напишите за меня это разные вещи. В чем сложность? Обратиться на сайт - curl. Записать в файл, к примеру fule_put_contents, да и полно примеров в интернете. Запускать каждый час - поставить задачу в cron. Начните хотя бы, и по ходу спрашивайте, что не получается с примером вашего кода.
...
Рейтинг: 0 / 0
29.02.2016, 17:33
    #39181729
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
SharuPoNemnogu,
Спасибо,
Как обращаться на сайт , разобрался:

<?php
if (isDomainAvailible('http://www.google.com'))
{
echo "Работает и готов отвечать на запросы!";
}
else
{
echo "Ой, сайт не доступен.";
}
//Возвращает true, если домен доступен
function isDomainAvailible($domain)
{
//Проверка на правильность URL
if(!filter_var($domain, FILTER_VALIDATE_URL))
{
return false;
}
//Инициализация curl
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
//Получаем ответ
$response = curl_exec($curlInit);
curl_close($curlInit);
if ($response) return true;
return false;
}

С кроном тоже разобрался: пример # выполнять задание раз в час в 0 минут
0 */1 * * * /home/u12345/script.php

Однако не нашел примера который можно будет использовать для : fule_put_contents
Нужно обратиться на сайт получить данные вида:

<p class="date_label">Курсы валют на
29.02.2016 </p>
<div class="ccl1"><span>Валюта</span><br>
<br>
Рубль<br>
Фунт Стерлинг<br>
Евро<br>
Доллар</div>
<div class="ccl2"><span>Курс Центрального Банка </span><br>
<br>
0.12060<br>
2.9724<br>
1.1118<br>
1.3655<br>
</div>
<div class="ccl3"><span>Покупка</span><br>
<br>
0.02040<br>
2.9000<br>
1.1500<br>
1.2650<br>
</div>
<div class="ccl4"><span>Продажа</span><br>
<br>
0.12130<br>
2.8580<br>
1.1800<br>
1.2100
</div>

В виде:
Курс ЦБ
Рубль:
Фунт Стерлинг:
Евро:
Доллар:

Курс Банка
Покупка:
Рубль:
Фунт Стерлинг:
Евро:
Доллар:

Продажа:
Рубль:
Фунт Стерлинг:
Евро:
Доллар:
...
Рейтинг: 0 / 0
29.02.2016, 17:55
    #39181746
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
Код: php
1.
file_put_contents(<path_to_file>, strip_tags($response)."\n", FILE_APPEND);
...
Рейтинг: 0 / 0
29.02.2016, 17:56
    #39181748
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
Mr.Brownне нашел примера который можно будет использовать для : fule_put_contentsМожет, http://php.net/manual/ru/function.file-put-contents.php]f i le_put_contents ? Если так, от там, в документации, и примеры имеются.
...
Рейтинг: 0 / 0
29.02.2016, 17:58
    #39181752
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
vkleMr.Brownне нашел примера который можно будет использовать для : fule_put_contentsМожет, http://php.net/manual/ru/function.file-put-contents.php]f i le_put_contents ? Если так, от там, в документации, и примеры имеются.

Да опечатка получилась, воспользовался данным методом
и получил весь див класс

$html = file_get_contents('http://www.domain.com/');
$matches = array();
$div = preg_match('/<div class="cc">([\s\S]+)<\/div>/u', $html, $matches);

его затем нужно парсить? иди же можно обращаться к каждому элементу по отдельности?
...
Рейтинг: 0 / 0
29.02.2016, 18:04
    #39181758
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
а откуда вы это парсите? может у них api есть, или на другом сервисе где есть api проще будет курс забрать в xml или json, чем html парсить. Можно через DOMDocument попробовать или phpquery, на крайний случай регулярками разбирать.
...
Рейтинг: 0 / 0
29.02.2016, 19:00
    #39181840
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
Если решать задачу именно в том виде, как она поставлена, то я бы strip_tags() воспользовался:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?php
$data = <<<DATA
<p class="date_label">Курсы валют на
29.02.2016 </p>
<div class="ccl1"><span>Валюта</span><br>
<br>
Рубль<br>
Фунт Стерлинг<br>
Евро<br>
Доллар</div>
<div class="ccl2"><span>Курс Центрального Банка </span><br>
<br>
0.12060<br>
2.9724<br>
1.1118<br>
1.3655<br>
</div>
<div class="ccl3"><span>Покупка</span><br>
<br>
0.02040<br>
2.9000<br>
1.1500<br>
1.2650<br>
</div>
<div class="ccl4"><span>Продажа</span><br>
<br>
0.12130<br>
2.8580<br>
1.1800<br>
1.2100
</div>
DATA;

var_dump(strip_tags($data));


Вроде, похоже получается, только четыре лишние строчки убрать в начале:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
string(280) "Курсы валют на
29.02.2016
Валюта

Рубль
Фунт Стерлинг
Евро
Доллар
Курс Центрального Банка

0.12060
2.9724
1.1118
1.3655

Покупка

0.02040
2.9000
1.1500
1.2650

Продажа

0.12130
2.8580
1.1800
1.2100
"

...
Рейтинг: 0 / 0
01.03.2016, 12:17
    #39182355
Mr.Brown
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение данных и запись в файл
vkleЕсли решать задачу именно в том виде, как она поставлена, то я бы strip_tags() воспользовался:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?php
$data = <<<DATA
<p class="date_label">Курсы валют на
29.02.2016 </p>
<div class="ccl1"><span>Валюта</span><br>
<br>
Рубль<br>
Фунт Стерлинг<br>
Евро<br>
Доллар</div>
<div class="ccl2"><span>Курс Центрального Банка </span><br>
<br>
0.12060<br>
2.9724<br>
1.1118<br>
1.3655<br>
</div>
<div class="ccl3"><span>Покупка</span><br>
<br>
0.02040<br>
2.9000<br>
1.1500<br>
1.2650<br>
</div>
<div class="ccl4"><span>Продажа</span><br>
<br>
0.12130<br>
2.8580<br>
1.1800<br>
1.2100
</div>
DATA;

var_dump(strip_tags($data));


Вроде, похоже получается, только четыре лишние строчки убрать в начале:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
string(280) "Курсы валют на
29.02.2016
Валюта

Рубль
Фунт Стерлинг
Евро
Доллар
Курс Центрального Банка

0.12060
2.9724
1.1118
1.3655

Покупка

0.02040
2.9000
1.1500
1.2650

Продажа

0.12130
2.8580
1.1800
1.2100
"



Спасибо, это как раз то что нужно, можно как то еще параметричски записывать(нумировать строки например, чтобы далее было легко считывать и понимать какой курс к какой валюте относиться
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Получение данных и запись в файл / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]