2011-05-08 16 views
5

मैं यूआरएल-डीकोडेड स्ट्रिंग से सभी बैकस्लैश को हटाने की कोशिश कर रहा हूं, लेकिन यह \ हटाए गए यूआरएल-डीकोडेड स्ट्रिंग को आउटपुट करने के बजाय \ outputing है।PHP urldecoded स्ट्रिंग से सभी बैकस्लैश हटाएं

कृपया आप मुझे मेरी समस्या बता सकते हैं।

<?php 
$json = $_GET['ingredients']; 
echo urldecode(str_replace($json,$json, "\\")); 
?> 

उत्तर

11

आप stripslashes() का उपयोग करना चाहते हैं, क्योंकि यह वही है जो इसके लिए है। यह भी कम दिखता है:

echo urldecode(stripslashes($json)); 

आपको हालांकि disabling magic_quotes पर विचार करना चाहिए।

1

आप गलत तरीके से str_replace उपयोग कर रहे हैं

str_replace("\\","", $json) 
2

बजाय इस कोशिश करें, str_replace के लिए अपने तर्क सही नहीं हैं।

<?php 
$json = $_GET['ingredients']; 
echo urldecode(str_replace("\\","",$json)); 
?> 
2

php.net के str_replace docs को Accoring, पहला तर्क दूसरे तर्क है कि क्या आप के साथ की जगह ले रहे हैं, आप क्या खोज रहे हैं है, और तीसरा स्ट्रिंग आप में खोज कर रहे हैं है। तो, आप देख रहे हैं यह:

str_replace("\\","", $json) 
+0

बिल्कुल सही, धन्यवाद। मैं स्पष्टीकरण की सराहना करता हूं। –

+0

मुझे अपना इनपुट काम करने के लिए यह करना पड़ा: HiB

0

यह 100% सही तरीके से काम कर रहा है।

$attribution = str_ireplace('\r\n', '', urldecode($attribution)); 
संबंधित मुद्दे