Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод информации на своем сайте из чужого (https://javascript.ru/forum/misc/60001-vyvod-informacii-na-svoem-sajjte-iz-chuzhogo.html)

Dark_Delphin 06.12.2015 15:44

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

Помогите реализовать такую штуку, граббер определенного куска кода из чужого сайта 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"
?>


Заранее благодарен!

laimas 07.12.2015 01:07

Значит нет такого элемента или не соответствует рег. выражение.

Dark_Delphin 07.12.2015 01:55

Цитата:

Сообщение от laimas (Сообщение 398958)
Значит нет такого элемента или не соответствует рег. выражение.

есть элемент. Просто выводит элемент, а то что внутри него не выводит...

laimas 07.12.2015 06:18

Во-первых 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);

dyhmzall 07.12.2015 12:44

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

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


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

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

laimas 07.12.2015 13:37

Цитата:

Сообщение от dyhmzall
В таких случаях помогает phpQuery.

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


Часовой пояс GMT +3, время: 18:56.