Ben bir <textarea> ile bir form var ve ben sunucu tarafında bu textarea herhangi bir satır sonları yakalamak, ve bir <br/> ile değiştirmek istiyor.
Bu mümkün mü?
Ben textarea 'nin CSS white-space:pre ayarı denedim, ama hala yeterli değil.
nl2br() a> fonksiyonu tam olarak bunu yapmak için var:
Ancak, bu işlev br etiketleri ekler ama aslında yeni satırları kaldırmak değil - bu genellikle bir sorun değildir, ancak tamamen şerit istiyorum ve yakalamak taşımacılığının yanı sıra dönerse, kullanmanız gereken bir str_replace veyapreg_replace a>
Ben str_replace biraz daha hızlı olacağını düşünüyorum ama ben benchmarked değil;
$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );
veya
$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );
Eğer str_replace kullanmak için ya preg_replace, muhtemelen aksi halde, dizinin başında "\r\n" koymalısın gidiyveyauz bir {[(3)] } dizisi iki <br/> etiketleri tercüme edilecektir (beri \r uyumlu olacak, ve sonra \n uyumlu olacaktır).
örneğin:
$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );
veya
$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );
Güvenmez bir cevap isteyenler için nl2br():
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
ya da (bu durumda):
$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);
PHP Side: Textarea dizeden PHP dize
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
PHP Side: PHP dize geri TextArea dize:
$list = str_replace('|', ' ', $r['db_field_name']);