arrays - Extract html attributes from string in PHP -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 27 जवाब
मेरे पास एक ऐसा चर है जो दिखता है इस तरह से:
$ var = '& lt; li डेटा-tpl-classname = "class" data-tpl-title = "innerHTML" & gt; & lt; / li & gt;
और मैं डेटा-टीप्ल-एट्रिब्यूट्स को एक तरीके से निकालना चाहता हूं ताकि मैं एक परिणामी सरणी के साथ समाप्त कर सकूं जो इस तरह दिखता है:
$ array = ('क्लासनाम' = & gt; 'वर्ग', 'शीर्षक' = & gt; 'innerHTML')
"डेटा- tpl-" विशेषताओं की संख्या भिन्न होती है, और यह हमेशा एक
& lt; li & gt; तत्व इसके अलावा, यह हमेशा एक ही प्रारूप का अनुसरण करता है:
डेटा-टीप्ल-एट्रिब्यूनेम = "एट्रिब्यूट प्लेसमेंट" ।
मैं उन विशेषताओं को कैसे प्राप्त कर सकता हूं और उन्हें किसी सरणी में संग्रहीत कर सकता हूं, Regex का उपयोग किए बिना ? मैं बिना हर जगह regex कहता हूं क्योंकि मैं हर जगह देखता हूं ऐसा लगता है कि regex का प्रयोग करके html पार्स करना बुरा व्यवहार है, या यह इस मामले में ठीक है?
itemprop = "पाठ">आप कुछ स्ट्रिंग फ़ंक्शंस का उपयोग करके मान निकाल सकते हैं। ऐसा लगता है:
$ test1 = '& lt; li डेटा-tpl-classname = "class" data-tpl-title = "innerHTML" & gt; & lt; / li & gt;'; $ Test2 = '& lt; div डेटा-tpl-anything = "कुछ" डेटा-टीप्ल-शीर्षक = "यह एक शीर्षक है" डेटा-टीप्ल-तीसरी = "asdasd" & gt; & lt; / div & gt;'; var_dump (extract_tpl ($ test1)); var_dump (extract_tpl ($ test2)); फ़ंक्शन extract_tpl ($ स्ट्रिंग $ $ prefix = "data-tpl-") {$ start = 0; $ End = 0; जबकि (स्ट्रॉप्स ($ स्ट्रिंग, $ उपसर्ग, $ अंत)) {$ start = strpos ($ स्ट्रिंग, $ उपसर्ग, $ प्रारंभ) + strlen ($ उपसर्ग); $ End = strpos ($ स्ट्रिंग, '' ', $ start) -1; $ end2 = strpos ($ स्ट्रिंग,' '', $ end + 2); $ सरणी [substr ($ string, $ start, $ end-$ start)] = substr ($ स्ट्रिंग, $ end + 2, $ end2- $ end-2); } $ सरणी लौटाएं; }
आउटपुट:
सरणी (आकार = 2) 'classname' = & gt; स्ट्रिंग 'क्लास' (लम्बाई = 5) 'शीर्षक' = & gt; स्ट्रिंग 'आंतरिक एचटीएमएल' (लंबाई = 9) सरणी (आकार = 3) 'कुछ' = & gt; स्ट्रिंग 'कुछ' (लंबाई = 9) 'शीर्षक' = & gt; स्ट्रिंग 'यह एक शीर्षक है' (लंबाई = 15) 'तीसरा' = & gt; कोड (-1, +2, ...) में संख्याओं को छोड़ने के लिए जैसे "।
स्ट्रिंग 'asdasd' (लंबाई = 6) div>
Comments
Post a Comment