Добавление контента на сайт с другого сайта

Задача. Необходимо на книжном сайте вывести рейтинг книги с ЛитРеса. Т.е. при переходе на страницу книги должен где-то в макете выводиться рейтинг именно этой книги на Литресе.

Решение. В данном случае нужно использовать 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
 
 
// Если появятся нечитабельный текст, можно добавить строчку кода
        header('Content-Type: text/html; charset=windows-1251');
// Функция получения кода страницы со стороннего сайта
$content = file_get_contents('http://donor-site.com/page');
// Определение начала необходимого фрагмента
$pos = strpos($content, '
');
// Удаление всего до необходимого фрагмента
$content = substr($content, $pos);
// Определение конеца нужного фрагмента
$pos = strpos($content, '
'
);
// Удаление нужного количества символов от конца фрагмента
$content = substr($content, 0, $pos);
    // Удаление ненужного куска контента из взятого фрагмента
    $content = str_replace('текст, который нужно вырезать','', $content);
// Вывод полученный контент
echo $content;
?>
 
 
Код №1: PHP-код с помощью которого можно вывести контент со стороннего сайта

Код №2 написан конкретно под задачу вывода рейтинга с Литрес на странице своего книжного сайта. У нас на сайте при создании страницы с книгой есть дополнительное поле, куда вставляется id книги на Литресе (в примере кода это id_book_ltrs), а данные из этого поля мы уже подставляем для формирования партнерской ссылки.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
//Рейтинг с Литреса
$link = get_field('id_book_ltrs');
$linklitres = 'https://www.litres.ru/' . $link . '/';
if( $link):
$content = file_get_contents($linklitres);
$pos = strpos($content, '
);
$content = substr($content, $pos);
$pos = strpos($content, '
'
);
$content = substr($content, 0, $pos);
$content = $content . '
';
echo '
ЛитРес
' . $content . '
'
;
endif;
?>
 
 
Код №2: Вывод рейтинга книги с ЛитРес
Пояснения к Коду №2

  • get_field('id_book_ltrs') — получение id книги, которое берется на ЛитРесе для партнерской ссылки. На этом сайте настроено дополнительное поле через плагин ACF и прописывается при создании страницы с книгой.
  • $content = $content . '
' — добавлен закрывающий div, т.к. конец из strpos не включается в $content.
  • echo '
    ЛитРес
    ' . $content . '
    '
    — при выводе контента обернули $content в div’ы для настройки своих стилей.
  • Ссылка на основную публикацию