2011-05-17 13 views
5

मैं एक एसडब्ल्यूएफ अपलोडर बना रहा हूं और मेरा HTML फॉर्म किया है।मैं अपलोड की गई फ़ाइल के फ़ाइल नाम में सफेद स्थान को कैसे बदल सकता हूं

यह तब तक ठीक काम करता है जब तक कि मैं नाम में रिक्त स्थान के साथ एक एसडब्ल्यूएफ फ़ाइल अपलोड नहीं करता।

मैं अंडरस्कोर के साथ व्हाइटस्पेस को कैसे बदल सकता हूं?

मैंने कोशिश की है ...

str_replace(" ","_", $file); 

... और ...

preg_replace(" ","_", $file); 
+2

आपको अपने प्रश्न के शीर्षक में '[PHP]' रखने की आवश्यकता नहीं है। – drudge

उत्तर

7

समारोह सही है, लेकिन आप एक चर निर्दिष्ट करने के लिए की है।

$filename = str_replace/preg_replace(" ","_", $file); 
+0

'preg_replace()' काम नहीं करेगा * जैसा कि * है। – alex

+0

मुझे पता है। लेकिन मैंने जो पोस्ट किया है उसकी प्रतिलिपि बनाई है। मैंने सोचा था कि आपको यह पता चलेगा कि इसे कैसे संभालना है :) – user489872

+0

मैं ओपी के बारे में निश्चित नहीं हूं: डी – alex

14

मैं अंडरस्कोर से खाली स्थान के कैसे बदल सकते हैं?

\s वर्ण वर्ग व्हाइटस्पेस वर्णों से मेल खाता है। मैंने क्वांटिफायर को एक _ पर एकाधिक व्हाइटस्पेस को संक्षिप्त करने के लिए जोड़ा है। यदि आप यह नहीं चाहते हैं, तो + हटा दें।

$file = preg_replace('/\s+/', '_', $file); 
4

मैं आमतौर पर इसे दूसरी तरफ से देखता हूं और केवल सफेद सूची से पात्रों को अनुमति देता हूं; मैं इन पात्रों को छोड़कर सब कुछ बदलता हूं:

$file = preg_replace("/[^-_a-z0-9]+/i", "_", $file); 
+1

आप इसे '/ [^ - \ w] +/'तक कम कर सकते हैं। [CodePad] (http://codepad.org/R5IJ0GVC)। – alex

+0

@alex सच है, लेकिन मुझे लगता है कि यह मेरे अर्थ का बेहतर दिखाता है। – jeroen

+0

आप सही हैं, यदि ओपी के पास रेगेक्स अनुभव सीमित है, तो वर्णों को स्पष्ट रूप से देखकर शायद उन्हें गड़बड़ाने में सहायता मिलेगी। – alex