ठीक। नियमित रूप से, मैं नियमित अभिव्यक्तियों के साथ काम करने में सर्वश्रेष्ठ नहीं हूं। मैं जो कर रहा हूं वह एक स्क्रीन स्क्रेप है, फिर मूल डोमेन पर वापस इंगित करने के लिए एम्बेडेड छवियों में img src मानों को ठीक करने की कोशिश कर रहा है। यह रेगेक्स है, जिसे मैं भिन्नता देने की कोशिश कर रहा हूं (सूची में कई - यहां वर्तमान में है):
preg_match_all("/<imgb[^>]*>/i", $html, $images);
यह क्या कर सभी को बदलने के लिए है <
साथ में />
। मुझे जो करने की जरूरत है वह सिर्फ वापस करना है(वर्तमान में) एक सरणी में पृष्ठ पर पांच छवियां ताकि मैं उनके src मूल्यों को ठीक करने के लिए उनके साथ काम कर सकूं, फिर उन्हें $ html में लिखूं, जो फ़ाइल की शुरुआत में सेट है:
$html = file_get_contents($target_url);
उत्तर:
जवाब के लिए 5 № 1असल में, रेगेक्स के साथ यह मत करो कर सकते हैं रेगेक्स के साथ HTML को पार्स करें, लेकिन यह लगभग निश्चित रूप से प्रयास के लायक नहीं है।
इसके बजाय, वास्तविक डोम पार्सिंग के साथ करें DOMDocument
वर्ग:
$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName("img");
foreach ($images as $image) {
$image->setAttribute("src", "http://example.com/" . $image->getAttribute("src"));
}
$html = $dom->saveHTML();