Задать вопрос
@alex--n

Почему отдает 404, если урл правильный?

Добрый день. Нужно спарсить картинки с сайта. У меня есть список ссылок и я в коде пытаюсь выдать запрос в виде:
$value = removeBOM($value);
$str = 'http://mysite.ru/'.$value;
$sContent = file_get_contents($str);

removeBOM удаляет биты-маркеры кодировки. У меня есть $value, которое выдается в цикле из csv файла(с ним все в порядке и выдает, что нужно). При выполнении он гордо мне пишет:
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
По прямой ссылке с теми же символами все отлично. Я пишу парсер первый раз поэтому все может не так как надо)
Что может быть?
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Driver86
@Driver86
Немодератор toster.ru
1) var_dump ($value) надо бы сделать и точно убедиться, что видимая длина совпадает с реальной.
2) urlencode
3) punycode
file_get_contents, в отличие от браузера, не кодирует url, не вырезает невидимые символы (в конце $value может быть символ переноса строки), и передаёт кодировку как есть, что критично для site.ru/url-по-русски.
Ответ написан
Комментировать
i_d_1
@i_d_1
Программист PHP
Что то мне очень кажется что биты кодировки надо удалять у файла а на у переменной value

Кроме того возможно в настройках пхп запрещено получать файлы кроссдоменно. Проверьте

Идешкой посмотрите что попадает в str
Ответ написан
а без removeBOM пробовал?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы