दिलचस्प पोस्ट
कैसे जावास्क्रिप्ट में नियमित अभिव्यक्ति से बचने के लिए? सी ++: क्या मैक्रो को 'ए', 'बी', 'सी' में विस्तारित किया जा सकता है? फास्ट क्रमचय -> संख्या -> क्रमचय मानचित्रण एल्गोरिदम जीएसएक्स फेंकता है MalformedJsonException एकाधिक .cpp और .h फ़ाइलों को संकलित करने के लिए G ++ का उपयोग करना Log4j लॉगगर प्रोग्रामिंग को कॉन्फ़िगर करना विज्ञान-निर्णय निर्णय-पेड़ से निर्णय नियम निकालने के लिए कैसे? मैं उद्देश्य-सी के साथ JSON को कैसे पार्स करूं? टीम बिल्ड: स्थानीय स्तर पर MSDeploy का उपयोग करके प्रकाशित करें APP_PLATFORM, एंड्रॉइड के बीच संबंध क्या है: minSdkVersion और android: targetSdkVersion? जावा में अस्थिर क्षेत्रों और सिंक्रनाइज़ किए गए ब्लॉक वाले रिश्ते से पहले – और गैर-वाष्पशील चर पर उनका असर होता है? वर्डल जैसे शब्द बादल को क्रियान्वित करने के लिए एल्गोरिथ्म सभी धागे समाप्त होने तक अजगर मल्टीथ्रेडिंग प्रतीक्षा करें LINQ और C # का उपयोग कर Microsoft Access MDB डेटाबेस की क्वेरी करें जावास्क्रिप्ट में "mm / dd / yyyy" प्रारूप के साथ तिथि कैसे मान्य है?

पीएचपी का प्रयोग यूआरएल में% 20 में स्थान बदलें

मैं% 20 के साथ यूआरएल में रिक्त स्थान के सभी उदाहरणों को बदलना चाहता हूं मैं कैसे regex के साथ ऐसा करूँगा?

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "पीएचपी का प्रयोग यूआरएल में% 20 में स्थान बदलें"

यहां str_replace() कोई ज़रूरत नहीं है, यदि आप किसी स्ट्रिंग के किसी दूसरे स्थान को बदलना चाहते हैं: str_replace() का उपयोग करना पर्याप्त से अधिक होना चाहिए:

 $new = str_replace(' ', '%20', $your_string); 

लेकिन, यदि आप उस से थोड़ी अधिक चाहते हैं, और आप शायद करते हैं, यदि आप यूआरएल के साथ काम कर रहे हैं, तो आपको urlencode() फ़ंक्शन पर एक नज़र रखना चाहिए।

अपने खुद के लागू करने की कोशिश करने के बजाय urlencode() उपयोग करें आलसी रहो।

मुझे लगता है कि आपको अपने उद्देश्य के लिए urlencode () बजाय rawurlencode () का उपयोग करना चाहिए।

नमूना

 $image = 'some images.jpg'; $url = 'http://example.com/' 

Urlencode ($ str) के साथ परिणाम होगा

 echo $url.urlencode($image); //http://example.com/some+images.jpg 

इसकी बदली में% 20 बिल्कुल नहीं है

लेकिन rawurlencode ($ छवि) के साथ उत्पादन होगा

 echo $url.rawurlencode(basename($image)); //http://example.com/some%20images.jpg 

आपके पास कई विकल्प हैं कि यह कैसे करें, या तो:

  • urlencode() या rawurlencode()rawurlencode() प्रोटोकॉल के लिए यूआरऍल को एन्कोड करने के लिए डिजाइन किए गए फ़ंक्शन
  • str_replace() – "भारी मशीनरी" स्ट्रिंग की जगह
  • strtr() – में एकाधिक वर्णों की जगह ले जाने पर str_replace() तुलना में बेहतर प्रदर्शन होगा
  • preg_replace() नियमित अभिव्यक्ति (पर्ल संगत) का उपयोग करें

strtr()

मान लें कि आप "\t" और "%20" साथ "%20" " " बदलना चाहते हैं:

 $replace_pairs = array( "\t" => '%20', " " => '%20', ); return strtr( $text, $replace_pairs) 

preg_replace()

आपके पास यहां कुछ विकल्प हैं, या तो बस स्थान की जगह ~ ~ , फिर जगह और टैब की जगह ~[ \t]~ या सभी प्रकार की रिक्त स्थान ~\s~ :

 return preg_replace( '~\s~', '%20', $text); 

या जब आपको स्ट्रिंग को "\t \t \t \t" जैसे सिर्फ एक %20 साथ बदलना होगा:

 return preg_replace( '~\s+~', '%20', $text); 

मुझे लगता है कि आप वास्तव में मैन्युअल स्ट्रिंग प्रतिस्थापन का उपयोग करना चाहते हैं और अधिक प्रकार के व्हाइटस्पेस जैसे गैर ब्रेकएबल स्पेस (   ) को संभाल करना चाहते हैं

 $result = preg_replace('/ /', '%20', 'your string here'); 

आप उपयोग करने पर भी विचार कर सकते हैं

 $result = urlencode($yourstring) 

अन्य विशेष अक्षरों से बचने के लिए भी