SAD пишет:В этом случае удаляться ничего не должно
рэгэкспешники помогайте)
Для осуществления решения предполагаемой задачи, допустимо использование средств XML-анализаторов элементов целевого документа, позволяющих обеспечить поиск вложенных объектов по указанному критерию, в качестве которого может использоваться как значения информационных полей, так и параметр относительно пути расположения элемента
ALEN пишет:Сделал я готовое решение, думаю должно подойти
я так около 1000 изображений должен проверить)
я думаю поискать закономерности, как JustUserR сказал c позиционированием. Но от помощи еще не отказуюсь
SAD
Так и не пойму в чем проблема такого способа. Пустое изображение, даже с очень нереально большим разрешением будет весить несколько килобайт и после сразу удаляться. :
PHP:
скопировать код в буфер обмена
$img='1.png'; // файл который проверяем
function img_clean($img,$tmpdir=''){
$tmpimg=$tmpdir.time().rand(111111,999999).".png"; // временный файл для теста $imglogo=new cms_img;
$imglogo->load($img); // загружаем картинку
$sxy=$imglogo->sxy(); // получаем размеры проверяемой картинки
$imglogo->create($sxy['w'],$sxy['h'],"#ffffff"); // Создаем картинку с такими же размерами, только чистую
$imglogo->save($tmpimg); // Сохраняем временное изображение
$imglogo->destroy();
if(filesize($tmpimg)<filesize
($img)){ unlink($tmpimg); return 1; } else { unlink($tmpimg); return 0; } }
if(img_clean($img,'')==0){
$string=preg_replace("наша картинка удаляется тут","",$string); }
Ты вообще вникнул в идею?
Кстати если картинка залита другим фоном, то вес изображения идет вниз, редко поднимается и если поднимается то только на несколько байт, например:
$imglogo->create(350,350,"#ffffff"); = 1095 байт
$imglogo->create(350,350,"#0fa000"); = 1096 байт - зеленый
$imglogo->create(350,350,"#000000"); = 436 байт
$imglogo->create(350,350,"#a00d00"); = 1096 байт - красный
$imglogo->create(2350,2350,"#000000"); = 16185 байт
$imglogo->create(2350,2350,"#a00d00"); = 21398 байт - но думаю таких огромных изображений у тебя нет, да даже если есть, то оно быстро обрабатывается и освобождает место и память
А позиционирование:
SAD пишет:так ведь есть случаи когда просто идут в подряд 2 картинки "нормальные" - порежу не то что надо
вот удалю я это изображение, но путь на само изображение у меня в html все равно прописан. вместо пустого изображения будет иконка недоступности.
SAD
Ты не можешь вникнуть или неправильно выражаешься, или я не правильно доношу.
Смотри, проверяешь чистое или нет изображение, если чистое, то удаляешь регуляркой лишний кусок кода, где твоя картинка чистая лежит.
В общем все оказалось еще проще. Размеры пустого файла(на самом деле это прозрачный gif) получались 1 на 1 px, после взятия размера изображения. Легко его отследить было
Правда интересно почему размеры 1 на 1 получались, хотя на самом деле размеры побольше. Походу стандартные функции не могут определить размер прозрачного gif