2011-11-21 16 views
5

मैं निम्न उदाहरण के अनुसार मेरी कोड में एक स्ट्रिंग है:पीएचपी स्ट्रिंग की अनुमति नहीं है < and > पात्रों

<?php 
$find = '<tag'; 
$string = 'blah blah <tag=something>'; 
?> 

काफी सरल है, लेकिन जब मैं तार प्रतिध्वनित करने के लिए प्रयास करते हैं, यह < या पसंद नहीं है> वर्ण। echo'ed सब मिल के है:

, ऐसा

तो, मूल रूप से मैं अनुमान लगा रहा हूँ मैं उन्हें PHP में काम करते हैं लेकिन वास्तव में कैसे यकीन नहीं im को पाने के लिए इन अक्षरों से बचने की जरूरत है। मैं एक templating प्रणाली के लिए इस का उपयोग कर रहा हूँ, का उपयोग करके html में तो एक फाइल फाइल शामिल किया जा सकता:

<include="filename.html"> 

तो मैं किसी भी समय < और> स्क्रीन पर अक्षर दिखाने की जरूरत नहीं है, मुझे बस फाइल पढ़ने की जरूरत है, इन टैग के उदाहरण ढूंढें और कुछ जादू करें। मुझे वह सब हिस्सा मिल गया है लेकिन यह केवल कोई स्ट्रिंग है जिसमें ऑपरेटर से अधिक/कम शामिल है जो ठीक काम नहीं कर रहा है।

कोई विचार?

+0

क्या आप पृष्ठ का स्रोत देख रहे हैं, या केवल दृश्य परिणाम देख रहे हैं जो ब्राउज़र आपको दिखा रहा है? –

+0

< and > स्क्रीन पर कभी भी प्रदर्शित नहीं होना चाहिए, यह बस एक स्ट्रिंग चर में संग्रहीत है। – Amo

+0

संभव डुप्लिकेट [PHP में प्रतीकों से कम से कम और अधिक प्रिंट करें] (http://stackoverflow.com/questions/6916023/print-less-than-and-greater-than-symbols-in-php) – mario

उत्तर

3

आपको एचटीएमएल में परिवर्तित होने से बचने के लिए HTML वर्णों का उपयोग करने की आवश्यकता है।

तो:

echo htmlspecialchars("<hello>"); 
+4

आपके द्वारा संदर्भित PHP दस्तावेज़ों से: * डेटाबेस क्वेरीज़ में उद्धृत होने वाले वर्णों से पहले बैकस्लैश के साथ एक स्ट्रिंग देता है। * इसका किस भाग से इसका संबंध है सवाल? –

+0

ओह! @ डेविड सही – tekknolagi

+0

है यह फ़ंक्शन '<' ब्रैकेट को बिल्कुल प्रभावित नहीं करता है .. यह 'और' स्ट्रिंग्स –

1

आप htmlspecialchars समारोह < कोष्ठक से बचने के लिए .. पीएचपी के साथ, तो आप उपयोग कर सकते हैं

8

आप HTML मार्कअप उत्पन्न कर सकते हैं HTML तत्व वर्णों के बीच अंतर करने के लिए एक तरीका खोजने के लिए (< &>)। एचटीएमएल में वर्णों के विशेष अनुक्रम मौजूद हैं जिन्हें HTML entities कहा जाता है। उन लोगों को एक एम्पर्सेंड के साथ वर्णित किया गया है, कुछ प्रकार के शॉर्टेंड और सेमी-कोलन के साथ समाप्त होता है।

यहाँ कुछ उदाहरण हैं:

&gt;  : > (greater-than) 
&lt;  : < (less-than) 
&amp; : & (ampersand) 
&raquo; : » (right angle quote marks) 
&eacute; : é (e acute) 

लगभग सभी पात्रों ऐसे संस्थाओं के साथ प्रदर्शित किया जा सकता है, लेकिन यह जल्दी से थकाऊ हो जाता है। आपको केवल < और > वाले, और & URL के लिए याद रखना होगा।

यदि आपका इरादा संकेतों से कम/अधिक से अधिक दिखाना था तो आपका कोड इस तरह लिखा जाना चाहिए।

<?php 
$find = '&lt;tag'; 
$string = 'blah blah &lt;tag=something&gt;'; 
?> 

के रूप में अन्य उत्तर में उल्लेख किया है, तो आप एक चर में अक्षर परिवर्तित करने के लिए समारोह htmlspecialchars() उपयोग कर सकते हैं (जैसे उपयोगकर्ता इनपुट से)।

<?php echo htmlspecialchars($string); ?> 

एक वेब ब्राउज़र में देखने के लिए blah blah <tag=something> प्रदर्शित करेगा। अन्यथा, उदाहरण के लिए यदि आप कमांड लाइन पर PHP का उपयोग कर रहे थे, तो आपको इस फ़ंक्शन का उपयोग करने की आवश्यकता नहीं होगी।

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