Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/89: Рейтинг темы: голосов - 89, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 3

Получить содержимое файла с удаленного сервера

29.08.2013, 00:51. Показов 16625. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заранее извиняюсь если промазал с темой или тема повтор, однако поиском пользовался - ответа на свой вопрос не нашел. Уже второй день пытаюсь найти решение своей проблемы, прочитал 358 Мб форумов и мануалов, мозг взрывается, результат - отсутствует. Замечу, что знания в PHP чуть более, чем нулевые, мозга хватило лишь на то, чтобы собрать несколько примеров воедино и подкорректировать под собственные потребности.

Задача:
необходимо получить содержимое файла с удаленного сервера (данные в xml)

Суть проблемы:
на предыдущем хостинге все работало при помощи SimpleXML
PHP
1
$load=simplexml_load_file('http://remote-site.com/file.xml');
на новом хостинге в этом месте получаю ошибку:
Warning: simplexml_load_file() [function.simplexml-load-file]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/user/public_html/local-site.com/page.php on line XX
попытался через cURL
PHP
1
2
3
4
5
$c = curl_init('http://remote-site.com/file.xml');
 curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
 echo $c;
 $page = curl_exec($c);
 curl_close($c);
получил
Warning: curl_exec() has been disabled for security reasons in /home/user/public_html/local-site.com/page.php on line XX
Люди добрые, не проходите мимо! Помогите слабоумному. Какие есть еще способы для получения содержимого файла с удаленного сервера?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2013, 00:51
Ответы с готовыми решениями:

Как получить с удалённого сервера свойства файла? который находится по неявному пути?
код $url = 'http://fotoblur.ru/wp-content/uploads/2014/12/02-Kak-proverit-mikrofon-na-veb-kamere.jpg'; $urlHeaders =...

Получить пользвателей удаленного сервера
Добрый день! Можно ли программным путем получить список windows пользователей удаленного сервера (server 2003) и управлять ими? Веб...

Получить данные из mySLQ с удаленного сервера
У меня на сайте есть база данных, подскажите как с ней работать? Можно пример? Нигде не нашел

8
 Аватар для TAB
215 / 215 / 73
Регистрация: 12.03.2013
Сообщений: 485
29.08.2013, 09:45
Последняя возможность это fsockopen. Хотя раз cURL вырубили, то ... скорее придётся общаться Вам с хостером.

Чит:
PHP
1
2
3
$url = 'http://remote-site.com/file.xml';
exec("wget -O - '$url'", $lines);   // -O в верхнем регистре
$page = implode("\n", $lines) . "\n";
1
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 3
29.08.2013, 17:28  [ТС]
Если вдруг кому понадобится, решил проблему при помощи следующей конструкции:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// получение содержимого файла на удаленном сервере
$url = 'http://remote-site.com/remote-file.xml';
exec("wget -O - '$url'", $lines);   // -O в верхнем регистре
$remote = implode("\n", $lines);
 
// запись полученного в локальный файл
$filename = 'local-file.xml';
$somecontent = $remote;
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'w')) {echo "Не могу открыть файл ($filename)";
exit; }
if (fwrite($handle, $somecontent) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit; }
// echo "Ура! Записали ($somecontent) в файл ($filename)";
fclose($handle);
} else {echo "Файл $filename недоступен для записи";}
 
// получаем содержимое из локальной копии файла с удаленного сервера
$load=simplexml_load_file('local-file.xml');
(....)
P.S. В данной конструкции локальный файл local-file.xml должен быть создан заранее, и иметь доступ на запись.

И опять нубский вопрос: как сделать так, что бы не было проверки на доступность файла для записи, в случае отсутствия файла он бы создавался, и главное - что бы файл очищался перед записью?

Добавлено через 22 минуты
Опять затупил, но искуплю свою вину и сам отвечу на свой вопрос:

PHP
1
2
3
4
5
6
7
8
9
$url = 'http://remote-site.com/remote-file.xml';
exec("wget -O - '$url'", $lines);   // -O в верхнем регистре
$remote = implode("\n", $lines);
    
$filename = 'local-file.xml';
$somecontent = $remote;
!$handle = fopen($filename, 'w'); // mode 'w' Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует, пытается его создать.
fwrite($handle, $somecontent);
fclose($handle);
Добавлено через 2 часа 1 минуту
Не совсем по теме, но возникла новая проблема..
На другом хостинге "For security reasons" запрещен exec(), и соответственно вышеупомянутая конструкция опять не работает. Зато на нем не запрещен fopen(). Попробовал сделать так:
PHP
1
2
3
4
$handle = fopen("http://remote-server.com/file.xml", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
Но опять ничего не работает, потому как удаленный сервер вместо содержимого файла отдает информацию о том, что "Cookies must be enabled in your browser!" и т.д. с подробными инструкциями как включить куки в браузере.
Подскажите, как с этим справиться?
0
 Аватар для TAB
215 / 215 / 73
Регистрация: 12.03.2013
Сообщений: 485
30.08.2013, 11:51
Для вышеописанного случая Вам уже понадобится симулятор веб-браузера, вроде Snoopy.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require_once 'Snoopy.class.php';
 
$uri = 'http://remote-site.com/remote-file.xml';
$snoopy = new Snoopy;
 
$snoopy->temp_dir   = '/tmp';  // Указать каталог для временных файлов с правами wr
$snoopy->accept     = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$snoopy->agent      = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0';
$snoopy->rawheaders = array(
    'HTTP_ACCEPT_LANGUAGE'  => 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
    'HTTP_DNT'              => '1',
    'HTTP_CONNECTION'       => 'keep-alive',
    'HTTP_CACHE_CONTROL'    => 'max-age=0'
);
 
$snoopy->fetch($uri);
 
echo $snoopy->results;
1
 Аватар для KPOT_KZ
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
05.09.2013, 23:43
Почему бы не использовать?
PHP
1
file_get_contents();
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 3
06.09.2013, 14:47  [ТС]
Цитата Сообщение от KPOT_KZ Посмотреть сообщение
Почему бы не использовать?
PHP
1
file_get_contents();
Потому, что в первом посте я говорил о том, что в настройках сервера "allow_url_fopen=0", и по этому, URL в качестве имени фала в "file_get_contents()" использовать не получится.
0
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 2
31.01.2015, 21:38
Цитата Сообщение от jools Посмотреть сообщение
Почему бы не использовать?

PHP
1
file_get_contents();
Потому, что в первом посте я говорил о том, что в настройках сервера "allow_url_fopen=0", и по этому, URL в качестве имени фала в "file_get_contents()" использовать не получится.
В .htaccess допиши

php_value allow_url_include on
php_value allow_url_fopen on
0
02.02.2015, 10:32

Не по теме:

Цитата Сообщение от jools Посмотреть сообщение
Warning: curl_exec() has been disabled for security reasons
Цитата Сообщение от jools Посмотреть сообщение
exec("wget -O - '$url'", $lines);
У вас очень странный хостер. Бегите от него, просто на всякий случай.

0
0 / 0 / 0
Регистрация: 03.02.2020
Сообщений: 1
03.02.2020, 10:04
Ребята привет...
Интересует данная тема.
Перепровал массу варианта парсинга.
Но один сайт никак не хочет поддаваться, не хочет отдавать код.
Если сохраняю страницу ctrl + s - то все ок.
А если программными методами PHP - часть кода не отдает, там где наличие размеров. Даже wget пробовал. Нет.

Сайт:
Кликните здесь для просмотра всего текста


Защита от парсинга стоит? Ничего понять не могу...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2020, 10:04
Помогаю со студенческими работами здесь

Как получить ssl сертификат удалённого сервера?
Как можно получить ssl сертификат удалённого сервера (C#)?

Загрузка файла с удаленного сервера
Нужно загрузить файл в временную папку и при загрузке писать загружено n из N мБ Как такое реализировать? и как проверять файли в...

Чтение файла с удаленного сервера
День добрый, уважаемые форумчане! Возник вопрос по чтению двоичных файлов. Ситуация такова, что нужно прочитать двоичный файл лежащий на...

Отдача файла с удаленного сервера с нужным именем
Файл торрент отдаётся в виде url http://z.z/download/123123 в ответ файл site.ru-namefilm.torrent Как реализовать получения файла с...

Как получить данные с БД или сделать дамп с удаленного сервера зная логин/пароль
Здравствуйте! Я полный ноль в базах данных, так что прошу меня простить если задаю глупый вопрос. На удаленном сервер запущен interbase...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru