Часто бывает необходимым добавить к себе на сайт какую-то динамическую информацию с другого источника (погодные виджеты, котировки валют и т.п.). Я лично думал, что для этой цели потребуется глубокое знание php. Однако на каком-то источнике (к сожалению, не помню сайт) нашел отличный способ, состоящий из нескольких строк кода. Для понимания этого кода глубоких знаний php вам не нужно. Достаточно подставить свои данные и на вашем сайте появится информация из другого источника. Создаем в корне сайта файл с произвольным названием, например, file.php и добавляем в него следующий 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 |
<?php // с кодировкой возможны проблемы, поэтому если вдруг появятся каркозябры, попробуйте добавить следующую строчку кода header('Content-Type: text/html; charset=windows-1251'); // сторонняя страница сайта, с которой будем брать контент. $content = file_get_contents('http://site.ru/page'); // определяем начало необходимого фрагмента кода, до которого мы удалим весь контент $pos = strpos($content, '<div class="start"><span class="needed-text">'); // удаляем все до нужного фрагмента $content = substr($content, $pos); // находим конец необходимого фрагмента кода $pos = strpos($content, '</span></div>'); // отрезаем нужное количество символов от конца фрагмента $content = substr($content, 0, $pos); //если в нужном контенте встречается не нужный кусок текста, то его вырезаем $content = str_replace('текст, который нужно вырезать','', $content); // выводим необходимый контент echo $content; ?> |
Вместо:
‘http://site.ru/page’ – страница сайта, откуда нужно взять контент
‘<div class=”start”><span class=”needed-text”>’ – заменить на фрагмент кода, откуда начинается необходимый контент
‘</span></div>’ – заменить на фрагмент кода, где заканчивается нужный контент
Например, если нужный контент лежит в конструкции <div class=”start”><span class=”needed-text”>, а заканчивается фрагмент конструкцией </span></div>, то вставляем в наш php-код эти значения, соответственно.
В адресной строке браузера запускаем данный файл (http://my-site.ru/file.php) и если все сделано правильно, на странице будет выведен контент со стороннего сайта.
Для того, чтобы добавить этот контент на внутреннюю страницу нашего сайта, то добавляем в нее (внутреннюю страницу) следующий код:
1 2 3 4 |
<? $content = file_get_contents('http://my-site.ru/file.php'); echo $content; ?> |
Я в php далеко не знаток, но у меня все получилось. Надеюсь, что и у вас пройдет все без проблем 🙂
Спасибо Вам!
Пользуйтесь на здоровье)
А если страница, с которой нужно брать контент, требует авторизации?
Вот тут не подскажу, к сожалению.
основы php(вход на сайт) разбирать надо
Буду пробовать, надеюсь получится. Спасибо.
Подскажите, пожалуйста. Если мой сайт на https, а тот, другой, откуда хочу взять контент, на http, сработает и этот способ? У меня вся проблема именно в этом протоколе(( Заранее спасибо за ответ.
Есть единственный способ это проверить))
Вообще должно всё сработать.
привет спасибо но как добавить на базу
спасибо за ответ.
Здравствуйте.
А как сделать наоборот. Запретить чужому сайту использовать мой контент. Т.к. грузит хостинг.
Скажу честно, не знаю) Не сталкивался, нужно разбираться.
приведите полный пример кода html или php
и покажите результат
Уточните, пожалуйста, как в страницу сайта вставить. В код страницы ставлю
после сохранения страницы этот код стирается и ничего не выводит.
Как вы вставляете код? Непосредственно через редактирование html/php документа? Или через WYSIWYG редактор админки?
Спасибо!
Без проблем.
Спасибо, будем пробовать! Тоже думала через file_get_contents данные таскать, но про то, что можно лишнее обрезать даже не догадывалась, спасибо…
Надеюсь, все получится у вас.
У меня не выводит, что делать?
Спасибо, господи, я 3 часа пытался что то сделать
Ну да, упражнение не из легких 🤷♂️
Добрый вечер! Подскажите, пожалуйста, как с вами связаться, чтобы вы эту штуку сделали нам за деньги, если это вообще возможно?)) Спасибо
Здравствуйте. Увы, я давно не работаю фрилансером.
Ничего не поняла у меня ссылка на фид стороннего сайта как добавить на чистую страницу у вас в коде не вижу мета для ссылки на фид