मेरे पास PHP में स्ट्रिंग हैं जो मैंने डेटाबेस से पढ़ी है। स्ट्रिंग यूआरएल हैं और पहली नज़र में वे अच्छे दिखते हैं, लेकिन अंत में कुछ अजीब चरित्र दिखते हैं। ब्राउज़र के पता बार में, '% E2% 80% 8E' स्ट्रिंग को यूआरएल में जोड़ा जाता है, जो यूआरएल को तोड़ देता है।PHP में स्ट्रिंग से अदृश्य वर्णों को निर्धारित करना और निकालना (% E2% 80% 8E)
मुझे this post on stripping the left-to-right-mark from a string in PHP मिला और यह मेरी समस्या से संबंधित प्रतीत होता है, लेकिन समाधान मेरे लिए काम नहीं करता है क्योंकि मेरे पात्र कुछ और प्रतीत होते हैं।
तो मैं यह निर्धारित कैसे कर सकता हूं कि मेरे पास कौन सा चरित्र है, इसलिए मैं इसे तारों से हटा सकता हूं?
(मैं एक उदाहरण के रूप यूआरएल यहाँ से एक पोस्ट है, लेकिन ढेर अतिप्रवाह प्रपत्र अंत में चरित्र स्ट्रिप्स के रूप में जल्द मैं यहाँ में पेस्ट के रूप में।)
मुझे पता है कि मैं केवल कुछ दे सकता है स्ट्रिंग में वर्ण और अन्य सभी को त्यागें। लेकिन मैं अभी भी जानना चाहूंगा कि यह कौन सा चार है - और यह डेटाबेस में कैसे हो जाता है।
संपादित करें: सवाल का जवाब दे दिया गया है और स्वीकार किए जाते हैं जवाब में दी गई कोड मेरे लिए काम करता है:
$str = preg_replace('/\p{C}+/u', "", $str);
मैं उन्हें बाहर करने के लिए नियमित अभिव्यक्ति का प्रयोग करेंगे। देखें: http://www.roscripts.com/PHP_regular_expressions_examples-136.html –
क्या आपने उपयोगकर्ता "समाधान" से समाधान का प्रयास किया था? –
@CasimiretHippolyte धन्यवाद। उपयोगकर्ता द्वारा दिए गए preg_replace संस्करण जो आप मेरे लिए काम करते हैं, मैंने अभी कोशिश की है। लेकिन यह कौन सा char है? और स्वीकृत समाधान क्यों काम नहीं करता है अगर यह दाएं से बाएं निशान था? – spirit