Не работает функция file_get_contents

254
01 февраля 2018, 19:28

На docs.google.com у меня лежит документ, который я должен загрузить в csv формате. С этим все отлично, при переходе по ссылке файл скачивается с нужным форматом.
Но когда я использую такой код:

<?php
   $filename = "https://docs.google.com/...;
   echo file_get_contents($filename);
?>

Сервер выдает ошибку:
Warning: file_get_contents(https://docs.google.com/...): failed to open stream *куча квадратов в восклицательными знаками* in C:\xampp\htdocs\test\index.php on line 4

Если перед ссылкой добавить функцию urlencode(), появляется читаемая ошибка:

Warning: file_get_contents(https%3A%2F%2Fdocs.google.com...): failed to open stream: No such file or directory in C:\xampp\htdocs\index.php on line 4

Причем функция не работает с любыми ссылками, даже например https://google.com. Везде выдает одно и то же. Проверял локально и на хостинге. Версия php 7.1.10. Права ко всей папке поставил 777.

Цель задания является просто скачивание и сохранение файла на сервере. (с помощью file_put_contents). Примечательно, что все работало на старом хостинге.

var_dump(file_get_contents($filename)); выводит bool(false) при любых ссылках.

allow_url_fopen стоит значение on

Answer 1

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

Либо попробуйте аналог на CURL:

function file_get_contents_curl($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
READ ALSO
Обрезка запроса у URL в WordPress

Обрезка запроса у URL в WordPress

Необходимо обрезать запрос из URLПользователя после некоторого действия автоматически перенаправляет на страницу для примера https://test

246
Где правильнее хранить абстракции?

Где правильнее хранить абстракции?

Работаю с Symfony в связке с DoctrineСоздавая сущности я часто использую абстрактные классы и трейты

199
Как парсить динамичные веб сайты?

Как парсить динамичные веб сайты?

Для начала пример, допустим страница - https://itemtaobao

239
Удалить часть таблицы на PHP

Удалить часть таблицы на PHP

Добрый деньЕсть парсер который забирает таблицу с другого сервера и выводит на сайте

218