function strip_attributes($msg, $tag, $attr, $suffix = "") { 
     $lengthfirst = 0; 
      while (strstr(substr($msg, $lengthfirst), "<$tag ") != "") { 
              $tag_start = $lengthfirst + strpos(substr($msg, $lengthfirst), "<$tag "); 
              $partafterwith = substr($msg, $tag_start); 
              $img = substr($partafterwith, 0, strpos($partafterwith, ">") + 1); 
              $img = str_replace(" =", "=", $img); 
              $out = "<$tag"; 
              for($i=0; $i < count($attr); $i++){ 
                      if (empty($attr[$i])) { 
                            continue; 
                      } 
              $long_val = (strpos($img, " ", strpos($img, $attr[$i] . "=")) === FALSE) ? strpos($img, ">", strpos($img, $attr[$i] . "=")) - (strpos($img, $attr[$i] . "=") + strlen($attr[$i]) + 1) : strpos($img, " ", strpos($img, $attr[$i] . "=")) - (strpos($img, $attr[$i] . "=") + strlen($attr[$i]) + 1); 
               $val = substr($img, strpos($img, $attr[$i] . "=" ) + strlen($attr[$i]) + 1, $long_val); 
               if (!empty($val)) { 
                       $out .= " " . $attr[$i] . "=" . $val; 
               } 
         } 
         if (!empty($suffix)) { 
               $out .= " " . $suffix; 
         } 
         $out .= ">"; 
         $partafter = substr($partafterwith, strpos($partafterwith,">") + 1); 
         $msg = substr($msg, 0, $tag_start). $out. $partafter; 
         $lengthfirst = $tag_start + 3; 
     } 
     return $msg; 
}  
Эта функция принимает 4 параметры.

1. $msg. Текст, который вы хотите лишить атрибутов.
2. $tag. Тег, с которого вы хотите убрать атрибуты (p, span, div, например).
3. $attr. Массив с названиями атрибутов, которых вы хотите убрать (оставив остальные нетронутыми). Если массив пуст, функция уберет все атрибуты.
4. $suffix. Дополнительный текст, который надо добавить к тегу. Это может быть новый атрибут, например.