2011-10-04 8 views
8

मैं का उपयोग कर रहा हूं ताकि twig template engine द्वारा उत्पन्न HTML के आउटपुट को साफ और प्रारूपित किया जा सके।PHP tidy और text areas

मैं साफ निम्नलिखित विन्यास का उपयोग कर रहा:

$config = array('indent' => TRUE, 'output-html' => TRUE, 'wrap' => 0); 

सब कुछ अच्छा काम करता है और अच्छी तरह से, को छोड़कर जब हम textareas को मिलता है। पहले या बाद में किसी भी खाली स्थान के बिना 'sdfds':

<textarea id="words" 
     rows="10"  cols="50"     >sdfds</textarea> 

जबकि स्वरूपण बहुत जटिल होता है, सही मान पाठ क्षेत्र में outputted है:

यहाँ साफ किया टुकड़ा है।

यह वह जगह है साफ सुथरा प्रारूप उपयोग करने के बाद:

   <textarea id="words" name="words" rows="10" cols="50" title="prompt"> 
sdfds 
</textarea> 

के रूप में देखा जा सकता है, मार्कअप बहुत neater अब है, लेकिन साफ ​​जिसका अर्थ है कि कर्सर अब है 'sdfds' के बाद एक LINEBREAK, शुरू की है ब्राउजर में देखे जाने पर 'एसडीएफडीएस' के बाद लाइन पर इशारा करते हुए।

यह बल्कि परेशान है, और मुझे यकीन नहीं है कि इससे निपटने के बारे में कैसे जाना है। मैं अभी भी पाठ क्षेत्र टैग साफ करना चाहते हैं, लेकिन मैं पसंद करेंगे यह तो इस प्रारूप में होना करने के लिए:

<textarea id="words" name="words" rows="10" cols="50" title="prompt">sdfds</textarea> 

किसी को भी इस मुद्दे से पहले के साथ पेश किया गया है? यदि हां, तो टेक्स्टटेरा टैग के लिए उन सफेद जगहों को पेश न करने के लिए मैं साफ कैसे हो सकता हूं?

उत्तर

0

यदि एसडीएफडीएस PHP के साथ आउटपुट किया गया है तो आपको एक और कॉन्फ़िगरेशन विकल्प जोड़ने की आवश्यकता होगी।

$config = array('indent' => TRUE, 'output-html' => TRUE, 'wrap' => 0, 'wrap-php' => 0); 

लपेटें केवल एचटीएमएल के बारे में और चिंताओं के किसी भी php बयान एक नई लाइन माना जाता है। कॉन्फ़िगरेशन विकल्पों के बारे में अधिक जानकारी के लिए आप यहां जा सकते हैं: http://tidy.sourceforge.net/docs/quickref.html

+0

दुर्भाग्यवश एसडीएफडीएस php द्वारा उत्पन्न नहीं होता है। एचटीएमएल टहन द्वारा एक स्ट्रिंग के रूप में उत्पन्न होता है। – F21

+0

ट्विग फ़ाइल या डेटाबेस से डेटा गूंजने के लिए PHP कोड जोड़ता है। लपेटें-php जोड़ें, अगर यह 0 को झूठी से प्रतिस्थापित नहीं करता है। –

+0

मैंने 'wrap-php' पैरामीटर के लिए 0 और गलत का उपयोग करने का प्रयास किया है, लेकिन मुझे अभी भी एक ही परिणाम मिल रहा है। यह संभव है कि टेक्स्ट ब्लॉक के कारण 'ब्लॉक() 'का उपयोग करके एक और ट्विग टेम्पलेट फ़ाइल से खींचा जा सके। – F21

0

जब आप इंडेंट => सत्य का उपयोग करते हैं तो आप टेक्सीयर को गड़बड़ कर पाएंगे। यह साफ हो जाता है क्योंकि टेक्स्टरेस मूल्य भी इंडेंट किया जाता है। यदि आप अपने टेक्स्टरेस को सही दिखाना चाहते हैं तो आप केवल इंडेंट => झूठी सेट कर सकते हैं। यह आपके एचटीएमएल को साफ करेगा, लेकिन आपके आवेदन को साफ करने के बाद एक ही मूल्य के साथ छोड़ देगा। मैंने देखा है कि कुछ पैच हैं जो समस्या हल करते हैं, लेकिन फिर आपको खुद को साफ करना चाहिए। आप इसे PHP के साथ भी कर सकते हैं लेकिन फिर आप साफ-सुथरा हो रहे हैं।

+0

मुझे अभी भी 'इंडेंट => झूठी' के साथ एक ही समस्या दिखाई दे रही है। मैंने 'आउटपुट-एचटीएमएल' को 'सत्य' या 'झूठी' पर सेट करने का भी प्रयास किया है, लेकिन मुझे अभी भी वही समस्या दिखाई दे रही है। – F21

+1

@phpdev यह एचटीएमएल आउटपुट के लिए सच है, जहां टेडीरिया के सटीक मूल्य से पहले एक नई लाइन जोड़ देगा। आउटपुट-html => सत्य के बजाय output-xml => true का उपयोग करके हल किया जा सकता है। – dennis

+0

धन्यवाद डेनिस। ऐसा लगता है कि समस्या हल हो गई है, लेकिन फिर उसने एक और पेश किया! आउटपुट-एक्सएमएल एक बंद टैग जोड़ने के कारण, '<मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "टेक्स्ट/एचटीएमएल; charset = utf-8"> 'अब' मेटा http-equiv = "सामग्री-प्रकार है "सामग्री =" पाठ/एचटीएमएल; charset = utf-8 "/>', यह अब HTML 4.01 के रूप में मान्य करने में विफल रहता है। सख्त: 'HTML 4.01 या इससे पहले में एक्सएचटीएमएल-शैली स्व-समापन टैग (जैसे ) का उपयोग करना। ठीक करने के लिए, अतिरिक्त स्लैश ('/') वर्ण हटा दें। इसके कारणों के बारे में अधिक जानकारी के लिए, एसजीएमएल, एचटीएमएल, एक्सएमएल, और एक्सएचटीएमएल में खाली तत्व देखें – F21

0

टिडी को कभी-कभी "गन्दा" रैली मिल सकती है और उसे रेक्सिप के साथ और परिशोधन की आवश्यकता होती है, यहां एक वर्कअराउंड है जो कर्सर को अंतिम आउटपुट में उसी पंक्ति पर रखेगा, इसलिए प्रयोज्यता का सामना नहीं होता है। बस अपने tidied एचटीएमएल trough चलाएं:

$subject = preg_replace('%(\r\n|\n)(?=</textarea>)%sim', '', $subject); 
-1

बस टेक्स्ट क्षेत्र के लिए ट्रिम फ़ंक्शन का उपयोग करें। और आप जो भी खोज रहे हैं वह आपको मिलेगा

संबंधित मुद्दे