Максим Компаниец, ты не так понял принцип. Сначала ты пишешь серверное API приложения, то есть выполняешь нужные действия дергая в PHP методы/функции. Потом ты пишешь WEB API, с которым могут работать внешние приложения, в том числе приложение "сайт" написанное на JS. То есть ты пишешь прослойку для внешних программ, с помощью которой они работают с твоим серверным приложением, с его внутреннем API.
А серверное приложение не должно обращаться к этой веб прослойке. Представь, у тебя в ящике стола есть какой то документ, который надо переложить из стола в сейф. И ты вместо того чтобы взять и просто переложить, сперва несешь его на почту и отправляешь письмом сам себе...
Пока что под наши требования удовлетворительно подходит алгоритм dhash. Он уверено определяет дубликаты с водными знаками, небольшими рамками, обрезанные, обрезанные с ресайзом, фото с изменением цвета и контраста. Единственное, не определяет дубль при повороте изображения, даже на небольшой угол. Дает приемлемый уровень ложных срабатываний для решения задачи.
doriulbool: есть. Открываем файл для чтения, считываем целиком в массив, закрываем файл. Открываем файз заного для записи с обрезкой до нулевой длины, пишем в него данные. Про все есть доке к функции fopen php.net/manual/ru/function.fopen.php
Возможная проблема при таком подходе: все считанные из файла данные хранятся целиком в памяти. Если файлы большие, то памяти может не хватить.
Можно получить в общем то тот же результат, если читать из одного файла, писать во второй, потом первый удалять, а второй переименовывать в имя первого. В этом случае данные можно обрабатывать построчно, не запихивая целый файл в память.
doriulbool: есть смысл решать эту задачу, только если решение с полной перезаписью вызывает проблему, если проблемы нет, то код с перезаписью можно считать хорошим. Второй вопрос. Если необходимо частое редактирование отдельных строк, то действительно ли вариант с хранением данных в CSV подходящий? Для хранения, быстрого поиска и изменения данных были созданы СУБД, почему бы вам не использовать одну из них (например sqlite), а когда нужен CSV, просто делать экспорт в этот формат.
В вашем коде мне не понравилось вовсе не отсутствие for. В первую очередь код не отформатирован, читать невозможно.
qweqwa: не могу найти этого в законе. В законе указано что такое обнародование, что автор передавший другому лицу произведение для использования (использование - это ведь не исключительные права), считается согласившимся на обнародование этого произведения. Потом говорится, что автор может отозвать право на обнародования только до обнародования и только возместив убытки.
Чего не говорится в законе:
1. Что обнародование в Интернет происходит по тому принципу, что вы описали (в законе говорится, что обнародование - первая публикация произведения, а не тиражирование).
2. Что автор должен передать исключительные права, чтобы потерять право отозвать обнародование (в законе говорится, что автор должен только дать согласие на использование произведения (а не исключительное право), для обнародования третьим лицом. После чего он может отозвать обнародование только ДО обнародования. )
qweqwa: не совсем понимаю почему. Автор согласился с офертой - дал права на использование размещаемых им материалов. Разместил, материалы были опубликованы. Значит, согласно 1269 статье он уже не может их отозвать. В чем ошибка?
Уточню. Если пользователь согласился с публичной офертой, в которой сказано, что автор, размещая материалы дает согласие на их демонстрацию на этом сайте, он уже не имеет права требовать эти материалы убрать?
"Автор имеет право до фактического обнародования произведения отказаться от ранее принятого решения о его обнародовании (право на отзыв)... "
Разве это не означает, что автор имеет право реализовать свое право на отзыв только "до фактического обнародования произведения"? Если же мы говорим об уже опубликованном материале, то значит нет у автора такого права?
"Автор имеет право до фактического обнародования произведения отказаться от ранее принятого решения о его обнародовании (право на отзыв) при условии возмещения лицу, которому отчуждено исключительное право на произведение или предоставлено право использования произведения, причиненных таким решением убытков"
Разве это не означает, что автор имеет право реализовать свое право на отзыв только "до фактического обнародования произведения"? Если же мы говорим об уже опубликованном материале, то значит нет у автора такого права.
А серверное приложение не должно обращаться к этой веб прослойке. Представь, у тебя в ящике стола есть какой то документ, который надо переложить из стола в сейф. И ты вместо того чтобы взять и просто переложить, сперва несешь его на почту и отправляешь письмом сам себе...