تجريد أحرف التحكم من سلاسل PHP
س: تعديل التعبير العادي لإزالة أحرف التحكم
سبق أن استخدم أحد مطوري PHP التعبير التالي لإزالة أحرف التحكم مثل STX من سلسلة:preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß ='\"]/"،"،$pString)preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)ومع ذلك، كانت النتيجة مقيدة بشكل مفرط، مما أثار السؤال: كيف يمكن إزالة أحرف التحكم بشكل انتقائي؟
A : استخدام فئات أحرف محددة لتحديد أحرف التحكم
لاستهداف أحرف التحكم بدقة، يمكن استخدام فئة أحرف أكثر تحديدًا:preg_replace('/[\x00-\x1F\ x7F]/', '', $input);preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)يطابق هذا التعبير الأحرف برموز ASCII ضمن النطاق \x00-\x1F و\x7F، الذي يشمل أول 32 حرفًا و\x7F، والذي يتضمن أحرف مثل إرجاع السطر.
الحفاظ على الأحرف الأساسية مثل فواصل الأسطرإذا كانت هناك حاجة إلى الحفاظ على أحرف معينة، مثل خلاصات الأسطر أو إرجاع السطر، فيمكن استبعاد تسلسل الهروب الخاص بها :
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);
بناء الجملة والإهمال الحديث
من المهم ملاحظة أن الإهمال من ereg_replace في PHP 5.3.0 وإزالته اللاحقة في PHP 7.0.0 يفرض استخدام preg_replace على ereg_replace.
أخيرًا، فئة الأحرف لأحرف التحكمللحصول على بديل موجز ومحمول ، يمكن استخدام فئة الأحرف [:cntrl:]:preg_replace('/[[:cntrl:]]/', '', $input);
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3