Mutlaka sıkı değil rasgele HTML sayfaları için bu yapıyorsanız sizin gibi standart olmayan özelliklerini ele almak gerekecek, çünkü regexp'nin, sizin için büyük bir baş ağrısı olacaktır:
href="some_url"
href='some_url'
href=some_url
Benim tavsiyem bu görev için DOM fonksiyonlarını kullanmaktır. Siz bu satırları (denenmemiş) arasında bir şey yapabilirsiniz:
$doc = new DOMDocument();
@$doc->loadHTMLFile($url); // suppress warnings about html errors
$xpath = new DOMXpath($doc);
$hrefs = $xpath->query("//*[@href]/@href"); // select the href attribute of all elements that have a href attribute
for ($i=0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$href->nodeValue = make_new_url($href->nodeValue); // this is where the magic happens
}
// now do the same for src attributes
Yine, bu kod bu konuda çok emin değilim bazı verdiği, özellikle XPath sorgusu gerekebilir.
DOM uzantısını kullanarak eldeki görev için aşırı karmaşık görünebilir, ama çok, bu görev ve gelecek olanlar, baş ağrısı ve çok zaman kaçınmayacağız.