إزالة أحرف محددة من سلسلة في PHP
سؤال
كيف يمكنني التحقق من سلسلة في PHP لأحرف محددة مثل "#" أو ""؟
لا أريد حقًا استخدام استبدال ، ما عليك سوى إرجاع صحيح أو خطأ.
شكرًا
المحلول
استخدم وظيفة strstr http://us2.php.net/manual/en/function.strstr.phpإرجاع جزء من سلسلة Haystack من أول حدوث الإبرة إلى نهاية كومة القش
ملاحظة: إذا كنت تريد فقط تحديد ما إذا كانت إبرة معينة تحدث داخل كومة القش ، فاستخدم وظيفة الدالة المكثفة في الذاكرة () بشكل أسرع وأقل ذاكرة strpos () بدلاً من ذلك.
نصائح أخرى
يمكنك استعمال ال strpos
وظيفة ، إذا كنت تريد فقط معرفة ما إذا كانت سلسلة تحتوي على واحدة أخرى (يبدو أن محتوى أسئلتك يشير إلى ذلك ، حتى لو كان عنوانك يقول "إزالة").
ملاحظة: لا تنس استخدام !==
أو ===
المشغل ، حيث يمكن أن تعود الوظيفة 0 أو خطأ ، وتلك لها معنى مختلف.
إذا كنت تريد "إزالة" أحرف ، str_replace
أو strtr
قد تفعل الخدعة.
يمكنك أن تفعل شيئًا كهذا:
if (strpos($string, '#') !== false || strpos($string, '\') !== false) {
// One of those two characters is in the string.
}
لاحظ على وجه الخصوص !==
بناء الجملة ، الذي يميز بين false
(بمعنى أنه لم يتم العثور على الشخصية) و 0
(بمعنى أنه تم العثور عليه في الموقف 0
).
جرب التعبيرات العادية.
preg_match('/[#\\\\]/', $String);
ملحوظة: عليك أن تفلت من التراجعات الخلفية ثلاث مرات.
إذا كنت تريدهم حقًا بتنسيق منطقي ، فيمكنك استخدام ملف المشغل الثلاثية ؟: " كما
preg_match('/[#\\\\]/', $String) ? true : false;
أو ببساطة تحويل إلى منطقية
(bool)preg_match('/[#\\\\]/', $String);