1

将换行符转换为 HTML break ( <br>)时

使用什么清洁剂?

str_replace(array("\r\n", "[br]", "\r"), '<br>', $Content);

或者

str_replace("\r\n", '<br>', $Content);
str_replace("[br]", '<br>', $Content);
str_replace("\r", '<br>', $Content);

我一直在使用第一种方法,但是我的一个朋友说我现在使用的方式在处理方面比较马虎。

我在函数中使用格式;所以

function Formatting ($Content)
{
 $Content = str_replace(array("\r\n", "[br]", "\r"), '<br>', $Content);
 return $Content;
}
4

2 回答 2

1

我会自己调整这个(来自手册页http://php.net/manual/en/function.nl2br.php中的用户注释:

<?php
/**
 * Converts newlines and break tags to an
 * arbitrary string selected by the user,
 * defaults to PHP_EOL.
 *
 * In the case where a break tag is followed by
 * any amount of whitespace, including \r and \n,
 * the tag and the whitespace will be converted
 * to a single instance of the line break argument.
 *
 * @author Matthew Kastor
 * @param string $string
 *   string in which newlines and break tags will be replaced
 * @param string $line_break
 *   replacement string for newlines and break tags
 * @return string
 *   Returns the original string with newlines and break tags
 *   converted
 */
function convert_line_breaks($string, $line_break=PHP_EOL) {
    $patterns = array(   
                        "/(<br>|<br \/>|<br\/>)\s*/i",
                        "/(\r\n|\r|\n)/"
    );
    $replacements = array(   
                            PHP_EOL,
                            $line_break
    );
    $string = preg_replace($patterns, $replacements, $string);
    return $string;
}
?>
于 2012-11-28T03:12:25.350 回答
0

在回应 Dagons 的评论时,他的建议非常有效;无需使用 nl2br() 创建新函数来执行此任务

http://php.net/manual/en/function.nl2br.php

于 2012-11-28T03:13:44.537 回答