Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2015, 15:44
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Вывод информации на своем сайте из чужого
Всем привет.

Помогите реализовать такую штуку, граббер определенного куска кода из чужого сайта http://rockstargame.ru/faq/oshibka-i...agruzit-fajly/.

А точнее вот эти блоки


Вот пробовал на PHP, а оно не работает(
<?
$text =file_get_contents("https://support.rockstargames.com/hc/en-us/articles/200426246-GTA-Online-Server-Status-Latest-Updates");
$data = array();
preg_match('|<div id="statusPanel">(.*)</div>|Uis', $text, $out);
print "$out"
?>


Заранее благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2015, 01:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Значит нет такого элемента или не соответствует рег. выражение.
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2015, 01:55
Аватар для Dark_Delphin
Кандидат Javascript-наук
Отправить личное сообщение для Dark_Delphin Посмотреть профиль Найти все сообщения от Dark_Delphin
 
Регистрация: 25.07.2013
Сообщений: 129

Сообщение от laimas Посмотреть сообщение
Значит нет такого элемента или не соответствует рег. выражение.
есть элемент. Просто выводит элемент, а то что внутри него не выводит...
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2015, 06:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Во-первых print_r("$out");, ибо возвращается массив.
Во-вторых именно найденное будет содержать только содержимое тега, как определено руг. выражением, но только в случае если и тег есть, и рег. выражение соответствует, и тег имеет содержимое.

Проверяйте:
$s = '<div id="statusPanel">text</div>';
preg_match('#<div id="statusPanel">(.+)<\/div>#Uis', $s, $out);

print_r($out); //найдено

//а вот так уже не прокатит, ибо атрибуты тега не соответствуют шаблону 
$s = '<div id="statusPanel" class="name">text</div>';
preg_match('#<div id="statusPanel">(.+)<\/div>#Uis', $s, $out);

print_r($out);
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2015, 12:44
Интересующийся
Отправить личное сообщение для dyhmzall Посмотреть профиль Найти все сообщения от dyhmzall
 
Регистрация: 02.12.2015
Сообщений: 13

В таких случаях помогает phpQuery. очень простая библиотека, но пригодится не раз.
не заморачивая сделаете типа такого
$content = file_get_content();

$phpQuery = new phpQuery();
$div = phpQuery.content($content).find('#id');


и получите нужное содержимое, не заморачиваяс с регулярками

П.С. код будет не такой, тут только демонстрация.

Последний раз редактировалось dyhmzall, 07.12.2015 в 12:47.
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2015, 13:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от dyhmzall
В таких случаях помогает phpQuery.
Ну не только она, есть подобные и другие, вот только не в меру прожорливые они, ибо надо все найти, создать объекты, а уж только затем можно в них копаться.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод информации из массива в таблицу ArtemGavrilenko Элементы интерфейса 7 29.06.2017 02:38
Вывод серверного времени на сайте McCloud Элементы интерфейса 7 09.09.2015 18:38
Вывод поисковых запросов гугл на сайте klexxus Общие вопросы Javascript 2 18.02.2015 08:46
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Вывод информации о свободном месте на жд на сайте Kmetik Events/DOM/Window 2 24.06.2012 12:32