При загрузке изображений в тело элемента (в детальную новость например), не получится прогнать эти изображения через обработчики. Или получится?

Вот довольно интересное решение данной задачи

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$patternSRC="/[^>]+src=(\"|')(.+?)(\"|')[^>]*>/si";
$pattern2="/(alt|src|title)=(\"|')(.+?)(\"|')/si";
$pattern="/<img([^>]*)\/?>/si";
preg_match_all($pattern,$arResult["DETAIL_TEXT"],$matches);
$modifiedImages=array();
foreach($matches[1] as $k=>$image){
    preg_match_all($pattern2,$image,$Attrmatches);
    $attributes=array();
    foreach($Attrmatches[1] as $kT=>$Tmp){
     $attributes[$Tmp]=$Attrmatches[3][$kT];
    }
    $modifiedImages[$matches[0][$k]]=$attributes;
}
$startfloat="right";
$arResult["DETAIL_TEXT"] = str_replace(SITE_SERVER_NAME, "", $arResult["DETAIL_TEXT"]);
$arResult["DETAIL_TEXT"] = str_replace(str_replace("http://", "http://www.", SITE_SERVER_NAME), "", $arResult["DETAIL_TEXT"]);
foreach ($modifiedImages as $image=>$attributes) {
    $imgSrc='<a class="fancy" href="'.$attributes[" src"].'" title="'.$attributes["title"].'" >';
    $imgSrc.=CFile::ShowImage($attributes["src"], 300, 300, "alt='".$attributes["alt"]."' title='".$attributes["title"]."'  style='float:".$startfloat.";margin: 5px;'", "", false);
    $imgSrc.="</a>";
    $arResult["DETAIL_TEXT"] = str_replace($image, $imgSrc, $arResult["DETAIL_TEXT"]);
    if($startfloat=="right") $startfloat="left"; else $startfloat="right";
}

Что делает данный код?

  • Находит все изображения в детальной новости
  • Прогоняет через обработчик и делает все картинки 300х300px
  • Сохраняет alt и title изображений
Готовы сделать всю работу за Вас
от750
  • 60 минут

Перенесем сайты! Перенесем баланс! Подарим 3 месяца хостинга!
Диадок

Поработаем?

Опишите свой запрос, мы расчитаем стоимость вашей задачи.