मैं एक उपयोगकर्ता की जांच के लिए एक सरल नियमित अभिव्यक्ति है:PHP में preg_match साथ मिलान UTF वर्ण: (* UTF8) विंडोज पर काम करता है, लेकिन नहीं लिनक्स
preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[ _.-])+$/i', $username);
स्थानीय परीक्षण में (विंडोज 7 WAMP का प्रयोग करके), इस यूटीएफ पात्रों (जैसे é या ñ) का उपयोग कर उपयोगकर्ता नामों की अनुमति देगा।
चेतावनी::() के [function.preg मैचों]: संकलन में विफल रहा है: (* VERB हालांकि, जब मैं सर्वर जहां साइट वास्तव में आयोजित किया जाएगा पर इस परीक्षण करने के लिए ले जाते हैं, मैं निम्नलिखित चेतावनी मिलती है) से मान्यता प्राप्त नहीं पर लाइन 12
पर /home/sites/vgmusic.com/test/Core/Impl/FormElementValidator.php में 5 ऑफसेट मैं भी एक स्थानीय उबंटू स्थापना पर इस की कोशिश की है और एक ही त्रुटि मिलती है। असल में, मैंने केवल इस काम को अपने स्थानीय विकास पर्यावरण पर देखा है। क्या ऐसे विशेष पात्रों की अनुमति देने का कोई तरीका है जो सभी ऑपरेटिंग सिस्टम के लिए काम करेंगे?
आप क्या उम्मीद करते हैं कि '(* यूटीएफ 8)' करता है? – Gumbo
ठीक है, इसे जोड़ने से पहले, ऊपर वर्णित होने पर एक उपरोक्त झूठी वापसी होगी। इसे जोड़ने के बाद, उन पात्रों को स्वीकार कर लिया गया था और उपरोक्त सत्य वापस आ गया। मैं उम्मीद कर रहा था कि यह वर्णित वर्णों की अनुमति दे। – Scott
यह लगभग निश्चित रूप से PHP संस्करणों के लिए नीचे है। आप कौन से PHP संस्करण चला रहे हैं? क्या phpinfo() पृष्ठों में पीसीआरई संस्करणों पर कोई जानकारी है? –