سؤال

انا استخدم nl2br() لتحويل \n الشخصيات إلى <br /> علامة لكني لا أريد أكثر من واحد <br /> علامة في وقت واحد. فمثلا، Hello \n\n\n\n Everybody ينبغي أن تصبح Hello <br /> Everybody.

كيف يمكنني أن أفعل هذا؟

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

المحلول

قد يكون النهج الأكثر مباشرة هو استبدال الخطوط الجديدة المتعددة أولاً باستخدام تعبير منتظم بسيط:

nl2br(preg_replace("/\n+/", "\n", $input));

نصائح أخرى

إذا كان لديك PHP 5.2.4+ ، يمكنك استخدام Preg_replace ونوع حرف المساحة البيضاء العمودية \v

$str = preg_replace('/\v+/','<br>', $str);

سأحاول استبدال الخطوط الجديدة المتكررة بخطوط جديدة واحدة باستخدام preg_replace () أولاً ، ثم باستخدام NL2BR للتحويل إلى HTML
العلامات. nl2br(preg_replace('/\n+/', '\n', $the_string)) يجب أن تفعل الخدعة (لم تختبر).

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