gpt4 book ai didi

php - 从文本区域获取每一行

转载 作者:IT王子 更新时间:2023-10-28 23:59:52 25 4
gpt4 key购买 nike

<textarea> put returns between paragraphs
for linebreak add 2 spaces at end
indent code by 4 spaces
quote by placing > at start of line
</textarea>

$text = value from this textarea;

如何:

1) 从此文本区域 ( $text ) 获取每一行并使用 foreach() 处理它们?

2) 添加 <br />到每一行的末尾,除了最后一行?

3) 将每一行扔到一个数组中。

重要 - textarea 中的文本可以是多语言的。


尝试使用:

$text = str_replace('\n', '<br />', $text);

但它不起作用。


谢谢。

最佳答案

您需要查看 nl2br()功能与 trim() .

nl2br()将插入 <br />在换行符 ( \n ) 和 trim() 之前将删除任何结尾 \n或空白字符。

$text = trim($_POST['textareaname']); // remove the last \n or whitespace character
$text = nl2br($text); // insert <br /> before \n

这应该可以满足您的需求。

更新

以下代码不起作用的原因是为了 \n要被识别,它需要在双引号内,因为双引号会解析它们内部的数据,而单引号则按字面意思理解,即 IE "\n"

$text = str_replace('\n', '<br />', $text);

要修复它,应该是:

$text = str_replace("\n", '<br />', $text);

但是还是使用内置的nl2br() 比较好函数,PHP 提供。

编辑

抱歉,我认为第一个问题是您可以添加换行符,实际上这会改变答案,就像 explode() 的任何类型一样将删除换行符,但这里是:

$text = trim($_POST['textareaname']);
$textAr = explode("\n", $text);
$textAr = array_filter($textAr, 'trim'); // remove any extra \r characters left behind

foreach ($textAr as $line) {
// processing here.
}

如果您这样做,则需要附加 <br />在您自己完成处理之前放到行尾,如 explode()函数将删除 \n人物。

添加了 array_filter() trim()关闭任何额外的\r可能一直挥之不去的角色。

关于php - 从文本区域获取每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com