পিএইচপি-তে প্রিগ_ম্যাচ ব্যবহার করার সময় "অজানা সংশোধক 'জি' ইন ..."?


93

এটি আমি ব্যবহার করার চেষ্টা করছি এমন রেজেক্স:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim

আমি এটি এই সাইটে পেয়েছি এবং আমি যখন এটি চেষ্টা করে দেখি তখন তা দুর্দান্ত কাজ করে। তবে আমি আমার কোডে রাখার সাথে সাথে আমি এই বার্তাটি পেয়েছি:

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22

কেউ কী কী ভুল বলতে পারে এবং কেন এটি সেই ওয়েবসাইটে কাজ করছে এবং আমার কোডে নেই?


4
আপনি যদি রেইজেক্সের সাথে ঠিক কী করার চেষ্টা করছেন তা আমরা যদি জানতাম তবে আমরা আপনাকে আরও ভাল সহায়তা দিতে পারি। এবং আপনার আরও ভাল সহায়তার দরকার - বা রেইজেক্স যাই হোক না কেন। সেই সাইটটিতে পাওয়া সমস্ত দুর্বল লিখিত ইমেলগুলির মধ্যে আপনি সম্ভবত সবচেয়ে খারাপটিকে বেছে নিয়েছেন। : /
অ্যালান মুর

4
এফওয়াইআই, আপনার রেজিএক্সএক্স এই ধরণের মেলকে বৈধতা দেবে: "-.-।-.--। @ - some--domain--.com" এবং এই ধরণের ভ্যালিড মেলগুলি বৈধ হবে না: "তথ্য @ সাবডোমেন। ডোমেইন.কম "। সর্বশেষে তবে সর্বনিম্ন নয় \ ডব্লু খুব জটিল কারণ পিএইচপি প্রিগ জাভাস্ক্রিপ্টের মতো পার্ল সামঞ্জস্যপূর্ণ নিয়মিত এক্সপ্রেশন এবং না পজিক্স ব্যবহার করে। পিএইচপি যদি ইউএস / ইউকে স্থানীয় নয় এমন সার্ভারে চলে তবে \ ডাব্লুও চিঠিযুক্ত উচ্চারণের সাথে মিলবে যাতে আপনি "àèìòù@domain.com" এর সাথে বৈধ মেল মেলে। আরও তথ্যের জন্য এখানে পড়ুন: it.php.net/manual/en/function.preg-replace.php#92443
মার্কো ডেমাইও

উত্তর:


170

কোন সংশোধক gজন্য preg_match। পরিবর্তে, আপনাকে preg_match_allফাংশনটি ব্যবহার করতে হবে।

এর পরিবর্তে:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)

ব্যবহার:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.