Чудны́ дела твои, PHP!
Может быть кто-то заметил, что у меня аватары в комментариях отваливались, я довольно долго не мог найти время и посмотреть что происходит, а вчера, вот, поправил. Дело оказалось в том, что мой хостер выставил директиву open_basedir и копирование аватара с интернета на файловую систему отвалилось.
Я делал это функцией copy, первом аргументом передавал УРЛ, вторым — путь на файловой системе. В логах, после изменения конфигурации, ПХП ругался, что «http:» — это неправильное начало для разрешённого пути. Удивительно, но стоило заменить copy// на её, фактически, эквивалент, как всё заработало:
if ($fin = fopen($url, 'rb') and $fout = fopen($file, 'wb')) {
stream_copy_to_stream($fin, $fout);
fclose($fout);
fclose($fin);
return true;
} else {
return false;
}
Такое поведение больше похоже на баг, ПХП у меня не последний (5.3.21 сейчас), может поправили уже.
а какое значение стоит для allow_url_fopen ?
Комментарий для slach.livejournal.com:
«On», иначе как бы это работало?