سؤال

وأنا تطوير الموقع يقدم احد في PHP الذي يعرض رسائل ببساطة التي يتم نشرها من قبل الزوار (المحيطة مثالي موضوع الموقع). يمكن لأي شخص نشر ما يصل الى ثلاث رسائل ساعة.

ومنذ الموقع سيكون صفحة واحدة فقط، أود أن السيطرة على طول العمودي من كل رسالة. ومع ذلك، أنا لا أريد أن الحفاظ على الأقل جزئيا فواصل الأسطر في الرسالة الأصلية. ومن شأن تسوية يكون للسماح فواصل الأسطر اثنين، ولكن إذا كان هناك أكثر من اثنين، ثم تحل محلها مع ما مجموعه فواصل الأسطر اثنين في صف واحد. كومة تجاوز تنفذ هذه.

وعلى سبيل المثال:

و"حيوانات النيص \ n هل \ ن \ ن \ ن \ nporcupiney."

وسيتم تغيير ل

و"حيوانات النيص


وporcupiney."

واحد من جوانب صعبة من التحقق من وجود فواصل الأسطر هو إمكانية تعرضهم جمعها وتخزينها ك \ ص \ ن \ ص، أو \ ن. فكرت في تحويل جميع فواصل الأسطر ل
ق باستخدام nl2br ()، ولكن على ما يبدو لا لزوم له.

وسؤالي: استخدام التعابير العادية في PHP (مع وظائف مثل preg_match () وpreg_replace ())، كيف يمكنني التحقق من وجود حالات فواصل الأسطر أكثر من اثنين في صف واحد (مع أو بدون مساحة فارغة بينهما) ثم تغييرها إلى ما مجموعه فواصل من سطرين؟

هل كانت مفيدة؟

المحلول

preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\n\n", $text)

نصائح أخرى

وشيء من هذا القبيل

preg_replace('/(\r|\n|\r\n){2,}/', '<br/><br/>', $text);

ويجب أن تعمل، على ما أعتقد. على الرغم من أنني لا أتذكر جملة PHP بالضبط، قد تحتاج الى مزيد من هروب: - /

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top