Comments 22
curl, более простой способ file_get_contents. Инклудом забирание контента не видел ни разу
Мне кажется даже способ с постоянным дерганием с использованием curl при создании страницы тоже далеко не высший пилотаж…
CURL или чем-то подобным дергать контент, парсить на нужные данные, но не забывать про кеширование, допустим к примеру данные остаются актуальными около суток. Так же это снизит нагрузку, и предотвратит от ошибок, если на другом сайте забанят ваш ip, ну или просто сайт окажется в определенный момент не доступным.
а у него php не отваливался с ошибкой?
Большинство информеров их тех что я видел вообще яваскриптовые и забираются со стороннего сервера на стороне клиента.
мне не нравится в вашем посте нытье про то что «Зачем минусовать карму, объясните».
А что, ТАК реально делает заметное число народу? С инклюдом-хттп?
Разработчики поопытнее так не делают. Оно и понятно. Просто сейчас в рамках небольшой акции по помощ новичкам, общаюсь с ними. И вот среди новичков я такой подход вижу частенько. Причем у людей часто такое вот крутится на реальном сайте в инете. А один раз видел. как инклюдили URL, передаваемый в запросе, без всяких проверок и валидаций.
Самое неприятное, что когда указываешь на дырку, показываешь и объясняешь, они чаще всего не воспринимают. Начинают кусать локти, когда уже поздно.
Самое неприятное, что когда указываешь на дырку, показываешь и объясняешь, они чаще всего не воспринимают. Начинают кусать локти, когда уже поздно.
Малоинформативно. Привели бы примеры кода как надо. И вообще, напишите большую, но интересную статью о том, как забрать данные с другого сайта через HTTP. Разбейте на части, распишите про fopen, curl, file_get_contents, во второй части про сокеты, XML-RPC, SOAP, REST. Как лучше, как хуже. А вашу заметку можно перефразировать в одно предложение. «Не пишите include 'http://..', пишите через curl».
(Воспринимате пожалуйста не как наезд, а как позитивную критику)
(Воспринимате пожалуйста не как наезд, а как позитивную критику)
нуэээ.
ошибка первоклассника на хабре?
ошибка первоклассника на хабре?
По моему, нереально быть читателем хабра и вот такое умудрится накодить :)
На хабре есть статьи про php иклюдинг. Ну, а то что оно криво выглядит, человек использующий include и так знает.
Для таких целей даже curl использовать роскошь :) fopen'у file_get_contents'у — можно стандартными средствами отослать любой заголовок при запросе. Curl стоит использовать если запрещено открывать удалённые файлы или требуется открыть более одного урла.
В своей практике использую удалённый инклюд для такой цели:
$my_var = include('http://ctoto/script.pl');
// скрипт возвращает строчку вида: <?php return 'text';?>
Удобство, очевидно, но использовать можно лишь если ты уверен в этом скрипте :)
На хабре есть статьи про php иклюдинг. Ну, а то что оно криво выглядит, человек использующий include и так знает.
Для таких целей даже curl использовать роскошь :) fopen'у file_get_contents'у — можно стандартными средствами отослать любой заголовок при запросе. Curl стоит использовать если запрещено открывать удалённые файлы или требуется открыть более одного урла.
В своей практике использую удалённый инклюд для такой цели:
$my_var = include('http://ctoto/script.pl');
// скрипт возвращает строчку вида: <?php return 'text';?>
Удобство, очевидно, но использовать можно лишь если ты уверен в этом скрипте :)
Со всем согласен. Но я лично общаюсь с тремя товарищами, которым помогаю осваивать PHP. Надавал книжек в свое время, сссылки на некоторые статьи отсюда, ссылки на другие материалы в сети. Когда увидел у них подобного рода конструкции с инклюдами, мягко говоря офигел. Нарыл статьи на эту тему, дал почитать. сам объяснил, чем это чревато. Даже на примере показал что можно сделать с его сервером через уделенный инклюд. Никакого эффекта. Пока петух не клюнул, никаких действий не предпринималось.
Как вот объяснять людям? Такое ощущение, что и сейчас человек не понимает, почему его поломали и как.
Как вот объяснять людям? Такое ощущение, что и сейчас человек не понимает, почему его поломали и как.
Во-первых, то о чем здесь описано (include с удаленного сервера), сработает только при включенном параметре
Во-вторых, иклюд берет лишь сформированный удаленным сервером HTML-код и не более того, никакого PHP-зловредного кода не может быть выполнено, только Java-script.
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.в файле php.ini, но на большинстве серверов он отключен в целях безопасности.
allow_url_include = On
Во-вторых, иклюд берет лишь сформированный удаленным сервером HTML-код и не более того, никакого PHP-зловредного кода не может быть выполнено, только Java-script.
ну про первое да. по дефолту отключен. но товарищ решил включить 9у ему ж надо было чтобы это работало)
а во-вторых. оно таки работает. include воспринимает полученный контент не как html, а как php. И есл в этом самом контенте удаленный сервер вернет <? system(«rm -rf .») ?>, то локальный сервер сделает, что о чем и написано в отданном исходнике. Проверено лично.
а во-вторых. оно таки работает. include воспринимает полученный контент не как html, а как php. И есл в этом самом контенте удаленный сервер вернет <? system(«rm -rf .») ?>, то локальный сервер сделает, что о чем и написано в отданном исходнике. Проверено лично.
очередной автор доказал нам, что все-таки в интернете кто-то неправ.
з.ы. автор не прав, информеры надо тянуть в фоне, роботом, раз в час или реже)))
з.ы. автор не прав, информеры надо тянуть в фоне, роботом, раз в час или реже)))
Sign up to leave a comment.
Как НЕ надо делать информер с внешнего сайта на PHP