CRC-32 входит в ум главным образом, потому что дешево вычислить
, Любой вид ввода-вывода входит в ум главным образом, потому что это будет ограничивающим фактором для такого обязательства;)
проблема не вычисляет контрольные суммы, проблема состоит в том, чтобы заставить изображения в память вычислять контрольную сумму.
я предложил бы контроль "stagged":
этап 1: проверьте на изменения меток времени файла и если Вы обнаруживаете изменение, там передают...
(не нужный в Вашем случае, как описано в отредактированной версии)
этап 2: получите изображение в память и вычислите контрольную сумму
, Наверняка важную также: многопоточность : установка конвейера, который позволяет обработать нескольких изображений параллельно, если несколько ядер процессора доступны.
Поскольку это, кажется, популярный вопрос, а комментарии заполняются «предложениями функций» или «отчетами об ошибках» ... Все, что делает этот фрагмент кода, - это объединение двух строк с косой чертой без дублируя косые черты между ними. Вот и все. Ни больше ни меньше. Он не оценивает фактические пути на жестком диске и не сохраняет начальную косую черту (добавьте ее, если необходимо, по крайней мере, вы можете быть уверены, что этот код всегда возвращает строку без начальной косой черты).
join('/', array(trim("abc/de/", '/'), trim("/fg/x.php", '/')));
Конечным результатом всегда будет путь без косых черт в начале и в конце и без двойных косых черт внутри. Не стесняйтесь делать из этого функцию.
EDIT: Вот хорошая гибкая оболочка функций для приведенного выше фрагмента. Вы можете передать сколько угодно фрагментов пути в виде массива или отдельных аргументов:
function joinPaths() {
$args = func_get_args();
$paths = array();
foreach ($args as $arg) {
$paths = array_merge($paths, (array)$arg);
}
$paths = array_map(create_function('$p', 'return trim($p, "/");'), $paths);
$paths = array_filter($paths);
return join('/', $paths);
}
echo joinPaths(array('my/path', 'is', '/an/array'));
//or
echo joinPaths('my/paths/', '/are/', 'a/r/g/u/m/e/n/t/s/');
: o)
для получения частей путей вы можете использовать pathinfo http://nz2.php.net/manual/en/function.pathinfo.php
для присоединения к ответу от @deceze выглядит нормально
Альтернативой является использование implode ()
и explode ()
.
$a = '/a/bc/def/';
$b = '/q/rs/tuv/path.xml';
$path = implode('/',array_filter(explode('/', $a . $b)));
echo $path; // -> a/bc/def/q/rs/tuv/path.xml
Функция @ deceze не сохраняет начальный / при попытке присоединиться к пути, который начинается с абсолютного пути Unix, например joinPaths ('/ var / www', '/ vhosts /site');[1127098 sizes.[1271 impression