19.11.2021
Описание добавлю чуть позже. Применять только на свой страх и риск.
global $DB;
$resSql = $DB->Query("SELECT * FROM b_iblock_element WHERE IBLOCK_ID = 4;");
while($resOb = $resSql->Fetch()){
preg_match_all('/
]+>/i', $resOb["DETAIL_TEXT"], $img_tags);
foreach($img_tags[0] as $key_tag => $img_tag){
$params = [];
preg_match_all('/(alt|title|src)=("[^"]*")/i',$img_tag, $img_params);
if(!empty($img_params))
{
foreach($img_params[1] as $k => $p){
$params[$p] = $img_params[2][$k];
}
if(empty($params["alt"]))
{
if(substr($img_tag, -2) == "/>")
{
$newTag = substr($img_tag, 0, -2) . ' alt="'.$resOb["NAME"].'" />';
}
elseif(substr($img_tag, -1) == ">")
{
$newTag = substr($img_tag, 0, -1) . ' alt="'.$resOb["NAME"].'" >';
}
else
{
continue;
}
if(!empty($img_tag) && !empty($newTag))
{
$updateSql = "UPDATE b_iblock_element SET DETAIL_TEXT = REPLACE(DETAIL_TEXT, '".$img_tag."', '".$newTag."') WHERE ID = ".$resOb["ID"].";";
}
//echo ''.print_r($img_tag,true).'
';
//echo ''.print_r($params,true).'
';
echo $updateSql;
echo "\r\n";
}
}
}
}