如何在通过php插入文本时在textarea中创建新行?
我认为它是\n
,但字面上印有textarea。
由于
答案 0 :(得分:65)
没有看到你的代码我不能确定,但我的猜测是你使用单引号('\ n')而不是双引号(“\ n”)。
如果字符串用双引号括起来,PHP将只评估转义序列。如果使用'\ n',PHP将把它作为文字字符串。如果使用“\ n”,PHP将解析变量和转义序列的字符串,并打印出您期望的新行。
答案 1 :(得分:6)
尝试
$text = 'text line one' . PHP_EOL . 'text line two';
echo '<textarea>' . $text . '</textarea>';
将在textarea的单独行中添加每个文本。
答案 2 :(得分:5)
PHP方面:从Textarea字符串到PHP字符串
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
PHP方面:PHP字符串返回TextArea字符串:
$list = str_replace('|', ' ', $r['db_field_name']);
答案 3 :(得分:1)
\n
\r
<br />
^M
答案 4 :(得分:1)
Alay Geleynse说的是对的,我和你有同样的问题,问题是由于转义字符(\ r,\ n)存在。要'转义'我使用的变量$var = stripcslashes($var)
并且它显示正确
答案 5 :(得分:0)
我已将\p
用于文本文件。试试
答案 6 :(得分:0)
2020年-Google带来了类似的服务。
以上述@ Va1iant用户的回答为基础
环境:
问题:
解决方案:
<?= isset($_POST['MailingAddress']) ? stripcslashes(misc::esc($_POST['MailingAddress'])) : misc::esc($data['current_mailing_address']) ; ?>
其中misc :: esc->返回htmlspecialchars($ var,ENT_QUOTES | ENT_HTML5,'UTF-8');
注意:
我没有尝试空白:行前;如概述 CSS Tricks,这也可能是一个解决方案-不使用脱衣舞娘。
答案 7 :(得分:0)
只是为了完成该问题的解决方案,如其他人所述,请使用"\n"
*(或在某些情况下为"\r\n"
)而不是'\n'
并且当您想使用php显示textarea内容并保留新行时,您需要使用nl2br
,因此,如果您为文本使用varialbe并将其命名为$ YOUR_TEXT,则应使用该函数作为:nl2br($YOUR_TEXT)
可以找到更多详细信息here
\n
,而Windows和Windows程序通常只需要换行\r\n
。答案 8 :(得分:0)
如果您只需要打印数据,请使用 nl2br()
,nl2br
将 \n
转换为 <br />
。但 <br />
不会创建新行。您应该将 <br />
替换为 <br>
,然后这会起作用。
示例:
$content = "foo \n bar";
echo str_replace("<br />","<br>",nl2br($content));
结果:
foo
bar
如果你需要拆分,你可以使用我的功能。 :D
function SplitLine($txt){
$txt = nl2br($txt);
$txt = explode("<br />",$txt);
return $txt;
}
我将 foo \n bar
和 textarea
作为 POST
方法发送给 php。
print_r(SplitLine($_POST['text_area']));
我的结果:
Array ( [0] => foo [1] => bar)
您可以使用 for
循环来获取数据并打印出来:
$result = SplitLine($_POST['text_area']);
for($i = 0;$i < count($result);$i++){
echo $result[$i]."<br>";
}
结果是
foo
bar
完整代码(仅用于测试):
<?php
//MyFunction
function SplitLine($txt){
$txt = nl2br($txt);
$txt = explode("<br />",$txt);
return $txt;
}
//My Code
if(isset($_POST['submit_data'])){
print_r(SplitLine($_POST['text_area']));
}
?>
<br>
<form method='post'>
<textarea name='text_area'></textarea>
<br>
<input type='submit' value='Send Data :)' name='submit_data' />
</form>
答案 9 :(得分:-1)
$row['content']=stripslashes($row['content']);
$row['content']=str_replace('<br />',"newline",$row['content']);
$row['content']=htmlentities($row['content']);
$row['content']=str_replace('newline',"<br>",$row['content']);
答案 10 :(得分:-3)
像这样使用动态输入你可以使用的每一行
echo chr(13)