Просмотр полной версии : [Help] Сравнить изображения по размеру (php)
draliokero
07.04.2009, 15:54
Помогите с кодом, нужно в папке images сравнить все картинки по размеру с указанной погрешностью +- кб. и вывести название этих пар изображений т.е. вписываю в input 300 отправляю сценарию, а он ищет и сравнивает файлы.
В папке images:
Название: Развер:
dsadasv.gif 700 кб.
dasdasf.png 400 кб.
fdfdafss.gif 200 кб.
sefvxcvv.jpg 800 кб.
Результат проверки выдает название файлов: dsadasv.gif, dasdasf.png , sefvxcvv.jpg
ниче не понятно. где пары? что он должен сравнивать? при каких обстоятельствах?
<form method="POST">
Погрешность <input type="text" name="p" value="<?=($_POST['p']!=null?htmlspecialchars($_POST['p']):"100")?>" size="5"> кб<br>
<input type="submit" value="go go go">
</form><br>
<?php
if($_POST['p'] != null) {
$p = (int)$_POST['p'];
$dir = 'images/';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$all_files[] = array($dir.$file, filesize($dir.$file));
}
closedir($dh);
}
}
$o = 0;
unset($all_files[0]);
unset($all_files[1]);
foreach($all_files as $i => $file1) {
$true = false;
foreach($all_files as $j => $file2) {
if($i!=$j&&abs($file1[1]-$file2[1])<=$p*1024) {
$array[$o][] = array($file2[0], $file2[1]);
$true = true;
}
}
if($true === true) {
$array[$o][] = array($file1[0], $file1[1]);
sort($array[$o++]);
}
}
$sorten = array();
foreach($array as $o => $g) {
if(!in_array($g, $sorten, true)) $sorten[] = $g;
}
if(sizeof($array)>0) {
foreach($sorten as $group) {
foreach($group as $file) {
echo $file[0].' '.round($file[1]/1024).' кб<br>';
}
echo '<hr>';
}
} else {
echo 'Нет таких';
}
}
?>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot