فواصل الأسطر القبض على (السطر الجديد، سطر تغذية) الأحرف في جزء النص

StackOverflow https://stackoverflow.com/questions/289159

سؤال

ولدي نموذج مع <textarea> وأريد أن القبض على أي فواصل الأسطر في أن جزء النص على جانب الخادم، واستبدالها <br/>.

هل هذا ممكن؟

وحاولت وضع white-space:pre على CSS لtextarea، ولكنها لا تزال غير كافية.

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

المحلول

وإلقاء نظرة على nl2br() وظيفة. يجب أن تفعل بالضبط ما تريد.

نصائح أخرى

nl2br() وظيفة موجودة لتفعل بالضبط هذا:

ولكن، هذه الوظيفة يضيف علامات ر ولكن لا فعلا إزالة خطوط جديدة - وهذا عادة ليست قضية، ولكن إذا كنت ترغب في تجريدهم تماما والصيد النقل يعود كذلك، يجب عليك استخدام <أ href = ل "http://php.net/str_replace" يختلط = "noreferrer"> str_replace أو preg_replace

وأعتقد str_replace سيكون أسرع قليلا لكني لم قياسها؛

$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );

أو

$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );

إذا كنت تنوي استخدام str_replace أو preg_replace، ربما يجب عليك وضع "\r\n" في بداية المصفوفة، وإلا سيتم ترجمة سلسلة \r\n إلى قسمين علامات <br/> (منذ سوف تكون مطابقة \r، ثم \n سوف تكون مطابقة).

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

$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );

أو

$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );

لأولئك الذين يريدون جوابا التي لا تعتمد على nl2br():

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

وأو (في هذه الحالة):

$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);

وPHP الجانبية: من سلسلة ناحية النص إلى PHP سلسلة

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

وPHP الجانبية: PHP سلسلة إلى سلسلة ناحية النص:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top