سؤال

كيف يمكنني التحقق من سلسلة في 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top