preg_replace для изменения URL-адресов SRC и HREF, исходящих из curl

Мне нужно заменить URL-адреса на странице, сделанной curl, и добавить правильную ссылку на изображения и ссылки. Мой php curl-код:

<?php function getPage($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($ch); curl_close($ch); if (!preg_match('/src="https?:\/\/"/', $result)) $result = preg_replace('/src="(.*)"/', "src=\"http://support.prophpbb.com/\\1\"", $result); if (!preg_match('/href="https?:\/\/"/', $result)) $result = preg_replace('/href="(.*)"/', "href=\"http://support.prophpbb.com/\\1\"", $result); return $result; } $result = getPage('http://support.prophpbb.com/'); print_r ($result); ?> 

Этот код работает нормально для некоторых ссылок, но для правильных ссылок он делает дубликат.

Из неправильной ссылки заменяется на правильную:

 <img src="./uploads/support/images/1355955233.png" alt="" title="" /> <img src="http://img.ruphp.com/php/1355955233.png" alt="" title="" /> 

Но правильные ссылки, заменены неправильно:

 <img src="http://img.ruphp.com/php/icon_mini_faq.gif" width="12" height="13" alt="*" /> <img src="http://support.prophpbb.com/http://img.ruphp.com/php/icon_mini_faq.gif" width="12" height="13" alt="*" /> 

Может ли кто-нибудь помочь мне, пожалуйста?

Попробуйте это регулярное выражение в preg_replace

 <?php function getPage($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($ch); curl_close($ch); if (!preg_match('/src="https?:\/\/"/', $result)) { $result = preg_replace('/src="(http:\/\/([^\/]+)\/)?([^"]+)"/', "src=\"http://support.prophpbb.com/\\3\"", $result); } if (!preg_match('/href="https?:\/\/"/', $result)) { $result = preg_replace('/href="(http:\/\/([^\/]+)\/)?([^"]+)"/', "href=\"http://support.prophpbb.com/\\3\"", $result); } return $result; } $result = getPage('http://support.prophpbb.com/'); print_r ($result);