Не могу создать regex для изменения размеров изображения <img

echo "Hello world!";

Новичок
Недавно начал изучать регулярные выражения.

Суть задачи:
Есть сайт на вордпрессе на главной странице есть сайдбар, а на странице с постами нет его.
Т.е. изображение которое пригодно для поста, не пригодно для отображения на главной(ширина сильно большая).
Надо находить на главной в кратком описании поста картинку и если её ширина превышает 650px тогда присваивать ширине = 650px, а высоту пропорционально. Для изображения достаточно 3 атрибутов (scr, height, width) остальные мне не нужны.


Я написал скрипт, но он будет работать только если нет переноса строки внутри тега img
1) Как его исправить чтоб работал если есть перенос тоже?
2) Может стоит решение написать на JS (я опасаюсь за производительность, 10 постов на главной) ?

Скрипт я привожу не полностью, а только то что важно.
Для поиска я как бы создаю три позиции (меня интересует 3 атребута) а внутри каждой позиции проверку на эти самые 3 атребута ( это сделано для того чтобы описать что атребуты scr, height, width могут идти в каком угодно порядке )
Я так понимаю всё дело в переменной $p_conn (соединители). Специально вверху оставил разные варианты, как можно задать картинку.

PHP:
//это будет когда
$p_conn = "\s*";
$content = '<div id="my_name_site">
        <a href="http://yandex.ua">   
       <img
       src="http://phpfaq.ru/1.gif" width="676" height="500" /></a>  
	</div>';

//это будет когда
$p_conn = "\s*.*\s*";
$content = '<div id="my_name_site">
        <a href="http://yandex.ua">   
       <img   alt="Logo" 
       src="http://phpfaq.ru/1.gif" width="676" height="500" /></a>  
	</div>';
	
//это будет когда   ??? 
$p_conn = ".*";
$content = '<div id="my_name_site">
        <a href="http://yandex.ua">   
       <img   alt="Logo"
            title="Logo"
            src="http://phpfaq.ru/1.gif" width="676" height="500" /></a>  
	</div>';


//это будет работать когда
$p_conn = ".*";
$content = '<div id="my_name_site">
        <a href="http://yandex.ua">   
       <img  src="http://phpfaq.ru/1.gif" width="676" height="500" /></a>  
	</div>';
	
	
	
echo $content; // проверка что браузер показывает  картинку

$p_width = "width\s*=\s*[\"']?([0-9]{1,5})[\"']?";
$p_height = "height\s*=\s*[\"']?([0-9]{1,5})[\"']?";
$p_scr = "src\s*=\s*[\"']?(.+)[\"']?";

// выражение будет работать, если img тег будет записан в одну строку 
$patterns ='#<img'.$p_conn.'(?:(?:'.$p_scr.')|(?:'.$p_height.')|(?:'.$p_width.'))'.$p_conn.'(?:(?:'.$p_scr.')|(?:'.$p_height.')|(?:'.$p_width.'))'.$p_conn.'(?:(?:'.$p_scr.')|(?:'.$p_height.')|(?:'.$p_width.'))'.$p_conn.'/>#i'; 


$content = preg_replace_callback($patterns, "my_replace", $content);
echo $content;

function my_replace($matches){
    
 var_dump($matches); 
    die("<h1>stop</h1>");
  // узнаю ширину и изменяю если больше 
  
 // заново строю img только с 3 параметрами  (это просто)    
 return "<img scr=\"$matches[4]\" width=\"$width\" height=\"$height\" />";  
}
 
Сверху