Как брать данные из другого сайта и записывать в базу ?

InstantCMS 2.X
#1 4 сентября 2017 в 11:21
Друзья как можно брать данные из сайта ?

Например есть сайт и в нем зареган пользователь который зарабатывает очки, эти очки обновляются в день 1 раз.

Мне нужно сделать так что бы этот же пользователь на сайте инста вставил свою ссылку на тот профиль сайта, и тогда он считал данные из блока например www.test.ru/users/23
  1. <div class="score">23(эта цифра обновляется) </div>
Но все данные из сайта на инста обновлялись 1 раз в день что бы нагрузки не было, ну через админ панель по нажатию кнопки. Реально ли это? Спасибо!
#2 4 сентября 2017 в 11:27
Нико, всё реально, парсер вам нужен. Поищите инфу про phpQuery — так проще всего. Можно и без библиотек сделать.
#3 4 сентября 2017 в 12:37


Нико, всё реально, парсер вам нужен. Поищите инфу про phpQuery — так проще всего. Можно и без библиотек сделать.

@SmartControl

Cпасибо читаю, а как правильно подключить phpquery в инста или сразу же в шаблоне ее подключать через require?
#4 4 сентября 2017 в 13:06


Нико, всё реально, парсер вам нужен. Поищите инфу про phpQuery — так проще всего. Можно и без библиотек сделать.

@SmartControl

<h1>Work</h1>

<?php
require '/phpQuery.php';
$url = 'https://test.com/players/e31c54be-33a4-41b9-ba6a-061b9de33ae2';
$file = file_get_contents($url);

$doc = phpQuery::newDocument($file);
$tbl = $doc->find('.PlayerProfile-RankingStat');
echo $tbl;
?>
Белый экран, но через index.php c локального работает.
#5 4 сентября 2017 в 14:50

Белый экран, но через index.php c локального работает.

Нико

Тайна белого экрана

Если кратко, то в htaccess нужно добавить строчку
php_flag display_errors on

и смотреть ошибки
#6 4 сентября 2017 в 15:14


Белый экран, но через index.php c локального работает.

Нико

Тайна белого экрана

Если кратко, то в htaccess нужно добавить строчку
php_flag display_errors on

и смотреть ошибки

@SmartControl

Да я все подключил теперь, не знаю как в базу записывать данные про это нашел просто не знаю как сделать это в insta потому что подлкючение идет не в самом шаблоне к базе. и как время обновления записи добавить.
#7 4 сентября 2017 в 15:16


Белый экран, но через index.php c локального работает.

Нико

Тайна белого экрана

Если кратко, то в htaccess нужно добавить строчку
php_flag display_errors on

и смотреть ошибки

@SmartControl

  1. $doc = phpQuery::newDocument($file);
  2. $tbl = $doc->find('.PlayerProfile-Rankings');
  3. echo $tbl;
#8 4 сентября 2017 в 19:28
Друзья никак не могу решить как сделать такое.

Есть сайт на котором есть данные пользователей (допустим это рейтинг игроков).
У каждого пользователя есть профиль на www.ne_moy.ru сайте. Мне нужно взять данные у каждого пользователе и скопировать свою базу данных для каждого пользователя который в своем профиле записал ссылку от этого сайт на моем сайте.
То есть: www.ne_moy.ru/users/1 пользователь вставил у себя в профиле.

Теперь я сделал парсер в профилях на моем сайте:
  1.  
  2. <?php
  3. $player_link = $profile['3x3planet']; Эта ссылка которая вставляет пользователь.
  4. $document = file_get_contents($player_link);
  5. $doc = phpQuery::newDocument($document);
  6. $fibarank = $doc->find('.PlayerProfile-RankingStat p:eq(0)')->text(); Это данные откуда берем данные из другого сайт
  7. echo $fibarank; В итоге все получается выводится тут.
  8. ?>
  9.  
Теперь проблема такая первое долго грузится страница где выводим данные. Второе нужно как то сделать через хук что бы все данные записывались в базу а потом выводились и это было каждые 12 часов.
Грубо говорят я не знаю как это сделать правильно но думаю просто $fibarank update в базу каждые 1440 мин.
-
И еще как можно добавить это куда то где хранятся все библиотеки
  1. require 'phpQuery.php';
что бы каждый раз где нужно туда не вставлять. Извините вопрос тяжелый запутанный если кто будет свободен и вас не затруднит уделите внимание. Спасибо
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.