Как обойти ограничение длины адреса в fopen и file_put_contents?
Если давать в качестве аргументом с адресом файла строку более 214 символов в fopen и file_put_contents, постоянно выдаёт ошибку. Судя по всему это ограничение разработчиков. Как обойти это ограничение?
sim3x, Warning: file_put_contents(tfrgyhujikoijhugyutgihjikoiuygughijhgucuvbuhjuftgyhuyuftgyiuhgyjvhbjnkjvghbkjjvghbjkj
gchlhukjfhdgfdguhyutryuijhgyttyiulkujyhtgdfyguhiouytycgvhbuiyfcghjjzdxhfcjgvkhbljhgfgxhcgjvhbsrydtufy
igurtydtfygulhgytrtrytttt.png): failed to open stream: No such file or directory in D:\server\OSPanel\domains\parser.euroki.org\test.php on line 2
Текст ошибки аналогичен тому как если бы не было создано папки в которую я хочу закинуть этот файл, но если убрать хотябы 1 символ то всё сработает правильно.
Конкретно в данном случае использовался windows, по фc видимо NTFS. Пока тестирую на локалке на боевой сервер не закидывал.
P.S. в сообщение об ошибке вставил переносы строк, а то текст не отображался целиком
Ninazu, по подкаталогам раскидать не проканает, ограничение идёт на весь пут в целом. Если начать сокращать то:
1. Можно потом не разобраться что это вообще был за файл
2. Могут начать появляться дубли, которые будут перезаписываться друг на друга
Таблица соответствия тоже не вариант, в том что я спарсил должен разобраться простой контентщик, который потом будет обрабатывать спарсившиеся файлы. В общем пока буду думать как выйти из сложившегося положения.
bismark1, За дубли можно не переживать, если взять к примеру hash('sha256', $url), то вероятность коллизии такая что ей можно принебречь полностью. Чтоб контентщик разобрался, можно ему написать простой файл менеджер который будет преобразовывать хеши в оригинальные URL по которым он будет ходить, ну и может с функцией поиска по имени. Думаю это единственный реальный вариант