在文本区域中将新行更改为 <br>

Posted

技术标签:

【中文标题】在文本区域中将新行更改为 <br>【英文标题】:changing new line to <br> in text area 【发布时间】:2013-10-20 09:12:52 【问题描述】:

我的问题很简单。我想将文本区域中的新行更改为&lt;br&gt; 标签,但我需要最终字符串为单行文本。我尝试使用nl2br 函数,但结果我得到了带有&lt;br&gt; 标签和新行的字符串。我还尝试使用 str_replace 将 或 符号简单地替换为 &lt;br&gt;,但它不起作用。 这是我最新代码的示例:

Godziny otwarcia: <textarea name="open" rows="3" cols="20">'."$openh".'</textarea>
<input type="submit" name="openb" value="Zmień"/><br>

    if($_POST['openb']) 
    $open = $_POST['open'];
    str_replace('&#010', '<br>', $open);
    change_data(21, $open);

$openh 是这样的结果:

$tab = explode('<br>', $openh);
$openh = null;
for($i=0;$i<count($tab);$i++)
    $openh = $openh . $tab[$i] . '&#013';

(是的,我知道我可以使用str_replace,不要问我为什么这样做) 原来的$openh$openh = 'Pon-pt 9:00-17:00&lt;br&gt;Środa 12:00-17:00' 此外,您可能想查看我的 change_data 函数,因为它与为什么我需要将字符串放在一行中,所以这里是:

function change_data($des_line, $data) 
    $file = 'config.php';
    $lines = file($file);
    $i=1;
    foreach($lines as $line_num => $line) 
        $wiersz[$i] = $line;
        $i++;
    
    $change = explode("'", $wiersz[$des_line]);
    $wiersz[$des_line] = $change[0] . "'" . $data . "'" . $change[2];
    $i = 1;
    $f = fopen($file, w);
    while($i <= count($wiersz)) 
        fwrite($f, $wiersz[$i]);
        $i++;
    
    fclose($f);
    header('location: index.php?p=admin');

我不是 PHP 专家,所以有时我会做一些“困难”的事情。我在逐行阅读文件 config.php 时遇到了很大的问题,这些是我几个小时努力的结果 :(

【问题讨论】:

【参考方案1】:

你试过 php 常量 PHP_EOL 吗?在你的 str_replace 代码中?

$open=str_replace(PHP_EOL,"<br>",$_POST["open"]);

【讨论】:

我没有尝试过,但我设法用 "\n" 做到了。它只需要 " 而不是 ' 而这一切都是因为我的浏览器没有在 PHP 中加载整个页面上次手动.. 现在我重新打开页面,有一些很好的 nl2br 函数示例以及它是如何工作的【参考方案2】:

有一个现成的 PHP 函数,名为 nl2br

来源:https://***.com/a/16376133/469161

【讨论】:

以上是关于在文本区域中将新行更改为 <br>的主要内容,如果未能解决你的问题,请参考以下文章

如何只允许 shift+enter 在文本区域中返回新行?

在文本区域输入键

如何在预填充的文本区域中将 <br /> 转换为换行符

通过javascript将<br>插入文本区域[重复]

在文本区域中的光标位置之后插入文本

更改 textarea 的不同属性