मैं $ content inside all URLs को खोजने के लिए निम्न का उपयोग करता हूं
$ content = Preg_match_all ('/ (http [s]?: [^ \ S] *) / i', $ सामग्री, $ लिंक); लेकिन यह http: // भाग में http://www.google.com/some/path पर निर्भर करेगा । मेरे प्रश्न हैं:
1 - मैं केवल उस कोड को हिट करने के लिए कैसे संशोधित कर सकता हूं, जो कि केवल www के साथ शुरू हो रहे हैं, उदा। www.google.com ? 2 - मुख्य उद्देश्य लिंक ढूंढना है, और उन्हें किसी अन्य फ़ंक्शन से लौटाए जाने वाले मान के साथ प्रतिस्थापित करना है। मैंने preg_match_callback () की कोशिश की है, लेकिन यह काम नहीं कर रहा है (शायद इसका गलत इस्तेमाल करना ..
$ content = preg_replace_callback ("/ (http [s]?: [^ \ S] *) / I "," my_callback ", $ content); function my_callback () {// बहुत सारे सामान स्वतंत्र रूप से preg_replace // में जोड़ते हैं। = आउटपुट ... $ आउटपुट लौटाते हैं}} < P> अब, मेरे तर्क में (जो शायद गलत है) $ content से सभी मिलानों को $ output से बदल दिया जाएगा। मैं क्या कर रहा हूँ गलत? (कोई अज्ञात फ़ंक्शंस न करें - मैं एक पुरानी सर्वर पर परीक्षण कर रहा हूं)
संपादित करें - टिप्पणियों के बाद, अधिक विवरण के साथ स्पष्ट करने की कोशिश कर रहा फ़ंक्शन o99_simple_parse ($ content) {$ content = preg_replace_callback ('/ (http [s] ?: [^ \ s] *) / i', 'o99_simple_callback', $ सामग्री); $ सामग्री वापसी;} कॉलबैक:
फ़ंक्शन o99_simple_callback ($ url) {// यूआरएल कैसे प्राप्त करें जो वास्तव में मैच है? और चौड़ाई ?? $ url = esc_url_raw ( $ Link); $ url_name = parse_url ($ url); $ url_ नाम = $ विवरण = $ url_name ['host']; // http: // से छुटकारा पाएं। $ Url = 'http: // something' Urlencode ($ url) '? W =' $ चौड़ाई; वापसी $ url; // जो मुझे वास्तव में बदलने की जरूरत है}
आप को पहले से ही करना है regex को संशोधित करने के लिए यूआरएल की अनुमति जो www से शुरू होती है, आप इसे बस लिख सकते हैं: / ((http [s] ?: | www [।]) [^ \ S ] *) / I +++++++++
No comments:
Post a Comment