2011-03-23 4 views
8

मैं सभी html टैग से बचने के लिए की जरूरत है, लेकिन जैसे कुछ अपवाद के साथ कुछ html टैग एस्केप: < b>, < font> आदिएक स्ट्रिंग

उदाहरण के लिए:

Hello <b>world</b>. How are <span>you</span>? 

में परिणाम होगा: नमस्ते दुनिया। कैसे आप < अवधि हैं> आप </span>

उत्तर

4

पर एक नज़र था में मेरा अनुभव है HTML purifier जैसे डोम पार्सर का उपयोग करने के लिए, हालांकि यह आपके एप्लिकेशन के लिए सेटअप करने के लिए थोड़ा मुश्किल हो सकता है और यहां तक ​​कि थोड़ा अधिक हो सकता है। अगर मैं इसे फिर से करना चाहता था तो मैं एक अलग प्रारूप (जैसे विकी प्रारूप, या बीबी कोड) का उपयोग करता हूं और HTML नहीं, इस तरह आप अपने स्वयं के, सरल टैग को HTML में परिवर्तित कर सकते हैं और आपके पास आउटपुट पर पूर्ण नियंत्रण है।

हाथ में प्रश्न पर वापस जाएं, आपके लिए एक त्वरित समाधान strip_tags() का उपयोग करना होगा और टैग श्वेतसूची का दूसरा तर्क पारित करना होगा - हालांकि यह एचटीएमएल डालने के लिए 100% सही/सुरक्षित नहीं है, इसलिए लंबे समय तक चलाने के लिए आपको या तो एक डोम पार्सर का उपयोग करना चाहिए या HTML इनपुट की अनुमति नहीं देना चाहिए।

+2

मैं टैग को पट्टी नहीं करना चाहता, मैं उनसे बचना चाहता हूं। मेरा उदाहरण देखें, स्पैन टैग अभी भी वहां है लेकिन इसका बच निकला है कि keepwalking

+0

दिखाएगा यदि आप कुछ HTML टैग्स के साथ गड़बड़ करना चाहते हैं और दूसरों को नहीं, तो मैं गंभीरता से पुनर्विचार करता हूं कि आप यह कैसे कर रहे हैं/क्यों ** नियमित अभिव्यक्तियों के साथ ** कभी भी डीओएम को सटीक या सुरक्षित रूप से पार्स करने में सक्षम नहीं हो। स्टाइल के लिए मैं कस्टम टैग का उपयोग करता हूं और फिर ** ** ** ** से बचें। – Dunhamzzz

+0

हाँ, मैं कस्टम टैग का उपयोग नहीं कर सकता क्योंकि संदेश ईमेल फ़िल्टर आदि से आते हैं ... इसकी जटिल। मैंने एक साधारण preg_replace के साथ समस्या का समाधान किया। Suport के लिए धन्यवाद। – keepwalking

-1

php एक समारोह strip_tags है, मुझे लगता है कि यह हो जाएगा आप के लिए here

+0

स्ट्रिप_टैग सुरक्षित नहीं है, बस चेतावनियों को देखें। – Peeter

+1

@ पीटर: असल में स्ट्रिप_टैग सुरक्षित है, यह वह HTML है जिसे आप इनपुट करते हैं, हालांकि इसे जांचना आवश्यक है - क्योंकि यह नियमित अभिव्यक्तियों पर आधारित है ... और यदि HTML दोषपूर्ण है तो आपको एक बड़ी समस्या है तो टैग को तोड़ना – BigFatBaby

+2

नहीं , स्ट्रिप_Tags सुरक्षित नहीं है, यह खाता विशेषताओं में बिल्कुल नहीं लेता है, इसलिए ठीक से विश्लेषण करेगा। – Dunhamzzz

0

यह लागू करने के लिए एक सरल तर्क की जरूरत है वास्तव में क्या देख रहे हैं, कुछ नीचे की तरह:
1. html टैग की एक सूची बनाएं आप जो भागना नहीं चाहते हैं।
2. एक HTML टैग (खोलना या बंद करना) को रोकें।
3. यदि टैग आपकी सूची में मौजूद नहीं है, तो & लेफ्टिनेंट के साथ आसपास के कोण ब्रैकेट (<>) को प्रतिस्थापित करें; और & gt ;, यानी <mytag> & लेफ्टिनेंट बन गया; mytag & gt;
4. अपनी एचटीएमएल फाइल में सभी टैग के लिए इसे दोहराएं।