Php 文本区域中的换行符
我知道在保存文本区域时,您可以使用nl2br()或str_replace将/n标记更改为br标记等。但是,我不确定如何将换行符插入文本区域。我似乎找不到太多关于用这些换行符将数据放回文本区域的信息 例如,我有一个表单,用户可以在其中更新字段。因此,用户可以输入:Php 文本区域中的换行符,php,html,textarea,line-breaks,nl2br,Php,Html,Textarea,Line Breaks,Nl2br,我知道在保存文本区域时,您可以使用nl2br()或str_replace将/n标记更改为br标记等。但是,我不确定如何将换行符插入文本区域。我似乎找不到太多关于用这些换行符将数据放回文本区域的信息 例如,我有一个表单,用户可以在其中更新字段。因此,用户可以输入: foo bar baz 将其保存到数据库时,将保存为: foo<br />bar<br />baz<br /> foobarbaz 现在,当该用户在页面刷新后返回到该表单时,所有字段都会通过从数
foo
bar
baz
将其保存到数据库时,将保存为:
foo<br />bar<br />baz<br />
foo
bar
baz
现在,当该用户在页面刷新后返回到该表单时,所有字段都会通过从数据库获取数据自动填充其以前的数据
但是,文本区域将br标记显示为文本,而不是添加换行符。我还尝试将br标签改为/n,希望textarea能将其解释为换行符,但没有乐趣。除此之外,我还试着逃跑等等
所以我的问题是这能做到吗?或者更重要的是,可以使用HTML/PHP(im使用smarty)完成。如果这不可能,那么可以使用javascript来完成吗
请举例说明
感谢阅读您可以使用
str\u replace
将
标记替换为行尾字符
str_replace('<br />', PHP_EOL, $textarea);
str\u replace(“
”,PHP\u EOL,$textarea);
或者,您可以将数据保存在数据库中,而无需先调用
nl2br
。这样,断线将保持不变。当显示为HTML时,请调用nl2br
。这种方法的另一个好处是,它需要更少的数据库存储空间,因为换行符是1个字符,而“
”是6个字符。将其保存到数据库时不要执行nl2br
。在HTML中显示文本时,请执行nl2br
。我强烈建议不要在数据库中存储任何HTML格式(除非您也使用了富HTML编辑器,在这种情况下,不这样做是愚蠢的)
新行
\n
将成为文本区域中的新行。我不确定这是否可行,但您应该尝试代码>我的建议是使用换行符将数据保存到数据库中,而不是使用nl2br对其进行解析。您应该在输出而不是输入中使用nl2br
str_replace('<br />', "\n", $textarea);
对于您的问题,您可以使用php或javascript:
PHP:
str_replace(“
”,“\n”,“$textarea”);
jQuery:
white-space:pre-wrap;
$('myTextArea').val($('myTextArea').val().replace(@
,“\N”);
啊,这真的很简单
加上
p{
white-space:pre-wrap;
}
到您的显示元素css
我的意思是,如果您使用
显示结果,那么您的css应该是
<?php
$smarty = new Smarty;
$smarty->assign('test', "This is a \n Test");
$smarty->display('index.tpl');
?>
在HTML中
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
这是一个
测试
PHP端:从Textarea字符串到PHP字符串
$list = str_replace('|', ' ', $r['db_field_name']);
PHP端:PHP字符串返回到TextArea字符串:
$course_description = nl2br($_POST["course_description"]);
$course_description = trim($course_description);
您可以使用以下代码:
str_replace(array("\r", "\n"), ' ', $textareavalue);
这对我有用
foreach ($videoUrls as $key => $value) {
$textAreaValue .= $value->video_url . '\n';
}
在PHP中,当我将该变量传递给HTML文本区域value属性时,使用单引号作为换行符对我来说非常有用,可以支持换行符
PHP
$( document ).ready(function() {
var text = "<?= htmlspecialchars($textAreaValue); ?>";
document.getElementById("video_urls_textarea").value = text;
});
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTML/JS
str_replace("\n", '<br />', $textarea);
$(文档).ready(函数(){
var text=“”;
document.getElementById(“video\uURL\uTextArea”).value=text;
});
一些错误的答案张贴在这里。
他们不是将\n
替换为
,而是将
替换为\n
因此,当您在textarea中输入时,下面是一个在mysql中存储
的好答案:
$msg = $_GET['msgtextarea']; //or POST and my msg field format: text
$msg = htmlspecialchars($msg, ENT_QUOTES);
str\u replace(“\n”,”
,$textarea);
简单的方法:
使用此选项插入mysql:
$msg=$\u GET['msgtextarea']//或POST和我的msg字段格式:文本
$msg=htmlspecialchars($msg,ENT_引号)代码>
并将其用于输出:
echonl2br($br['msg'])代码>
我在表格中找到的效果是
str_replace('br',PHP_EOL,$textarea) @Nideo如果这是你的意思,那就有点棘手,也不是很整洁。但是如果你不使用任何
的话,它是有效的,但是让用户所写的感谢每个人的回复。我现在可以看到,更好的做法是不在数据库中添加html,而是在需要时在数据库中应用它:)谢谢you@fl3x7别忘了,出于安全考虑,你必须在进来的路上处理:)@Oddantfr同意:)我刚养成了一个习惯,有一个包含所有页面相关预处理的包含文件。因此,在执行任何与页面相关的php之前,所有POST和GET值都会被清除。需要指出的一点是,使用\n between“
(双引号)而不是”
(单引号)。否则它将不起作用。例如:“\n”
,当然,如果您正在执行显示中的替换而不是将其保存到数据库中(我认为这肯定更好)那么代码应该是str_replace(PHP_EOL,
,$textarea);…或者仅仅是nl2br($textarea)…只有当您在textarea中插入数据并在其他元素(前端)中显示数据时,如果您希望它完全像
(除换行外,没有包装),然后可以使用p{white space:pre;}
。
$( document ).ready(function() {
var text = "<?= htmlspecialchars($textAreaValue); ?>";
document.getElementById("video_urls_textarea").value = text;
});
str_replace("\n", '<br />', $textarea);
$msg = $_GET['msgtextarea']; //or POST and my msg field format: text
$msg = htmlspecialchars($msg, ENT_QUOTES);
echo nl2br($br['msg']);