- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ничего не могу понять :(
Есть файл:
$file=Z://ajaxupload2/files/12396-2089
echo filesize($file);
echo file_get_contents($file);
Могу узнать размер, могу считать данные.
А вот:
unlink($file);
Warning: unlink(ajaxupload2/files/12396-2089) [function.unlink]: No such file or directory
Нету файла. Как это так?! Тестирую под виндой, поэтому с правами проблем не должно быть. Но тоже самое и линухе.
Вопреки распространённому мнению, в виндах, как минимум под ntfs, таки есть система управления правами доступа к файлам. Скорее всего у Вас банально нет прав на удаление файла. Поэтому чтение работает и получение размера файла тоже. Попробуйте заодно создание и изменение, если и они не сработают - будет 100% ясно в чем дело. Еще один нюанс в виндах, если файл на момент попытки удаления у Вас открыт, тоже может выдаваться такая же ошибка.
По поводу юникса, в принципе опять же - права доступа могут быть причиной. Но еще open_base_dir может срабатывать в safe_mode. При чем open_base_dir у некоторых хостеров (слава богу редко) работает как-то кривовато, и иногда надо выбирать что использовать - относительный или абсолютный путь, потому что работает только с одним:)
p.s.: не четко по Вашему вопросу, и ответ не полный, но читануть по диагонали смысл имеет http://forum.php.su/topic.php?forum=1&topic=449
не не не... всё банальнее)))
он от корня не умеет работать... убираю $_SERVER['DOCUMENT_ROOT'] и он работает т.е. просто оставляю /ajaxupload2/files/12396-2089
Интересный вопрос, с чего вдруг разработчики php решили что эта функция может и сама работать от корня...
Ещё и только под виндой оказывает...
Используйте один слеш после буквы диска.
$file = 'Z:/ajaxupload2/files/12396-2089';
И будет работать. Проверял на Win7.
Используйте один слеш после буквы диска.
$file = 'Z:/ajaxupload2/files/12396-2089';
И будет работать. Проверял на Win7.
Да там в том и прикол, что
В винде при $_SERVER['DOCUMENT_ROOT']
есть последний слэш, а в линухе его нету.
Ок.
Но всё равно вопрос, почему другие функции понимают, а эта нет.
Может баг? :)
Может баг? :)
В виндовс? откуда?!
;8316711']В виндовс? откуда?!
да не, в том, что filesize и другие понимают "//", а unlink нет.
Чем unlink "лучше", чем остальные?
Быть может потому что unlink это вроде сишной unlink? Так в мануале пишется. Других видимых отличий не нашел пока. Да и именно эта функция указана на странице описания Filesystem протокола. Но это лишь догадки 🙅
Мануалы, мануалы... Но всё же думаю можно было как-то это в один стиль чтоли...
Но ничего про "//" :D