दिलचस्प पोस्ट
mysql n अंतिम पंक्तियों से चुनें एंड्रॉइड पर जावा कोड हालांकि शैल आदेश चल रहा है? WPF में एक UserControl से वंशानुक्रम वाम-रैखिक और राइट-रैखिक ग्रामर्स Google के ऐप इंजिन एसडीके और क्लाउड एसडीके के बीच संबंध क्या है? नॉरटरन का क्या मतलब है? डेटाबेस में प्रत्येक तालिका में अभिलेखों की संख्या को सूचीबद्ध करने के लिए प्रश्न पीथोन: एक शब्दकोश में ट्यूपल्स की सूची परिवर्तित करना कैसे @ सिंक्रनाइज़ लॉक / अनलॉक में उद्देश्य सी? क्यों Iostream :: eof एक पाश स्थिति के अंदर गलत माना जाता है? डिवाइस पर Android नकली स्थान? मैं ctrl + c को c # में एक प्रक्रिया के लिए कैसे भेजूं? रेल वेबस्केट टूल पर सर्वश्रेष्ठ रूबी धागा से एक मूल्य लौट रहा है? पहली पंक्ति के बाद लाइन लूप बंद होने पर शैल स्क्रिप्ट बंद हो जाती है

पीएचपी का प्रयोग यूआरएल में% 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) 

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