ホームページ > バックエンド開発 > PHPチュートリアル > PHP テキスト行折り返し変換
関数 nl2br() および nl2p() テキスト行を p 段落に折り返し変換

PHP テキスト行折り返し変換
関数 nl2br() および nl2p() テキスト行を p 段落に折り返し変換

WBOY
リリース: 2016-06-20 13:01:45
オリジナル
2107 人が閲覧しました

多くの場合、エディタを使用せずに、単純に textarea を使用してユーザーから長い入力を取得します。ユーザーが入力した改行は「n」の形式で保存され、出力時に改行が行われず、大きなテキストがそのまま出力されることがあります。このとき、ライブラリ内の「n」に応じてテキストを折り返すことができます。 PHP には独自の関数 nl2br() があり、関数 nl2p() をカスタマイズすることもできます。

まず、nl2br() 関数を見てみましょう。

定義と使用法

nl2br() 関数は、文字列内の各改行 (n) の前に HTML 改行文字 (
) を挿入します。

簡単な例:

<?php
        
$str = "Welcome to 
www.scutephp.com";
        
echo nl2br($str);
        
?>
ログイン後にコピー

実行結果の HTML コード:

Welcome to <br />
www.scutephp.com
ログイン後にコピー

nl2p

nl2br には欠点があります。たとえば、段落をインデントするために CSS を使用するのはさらに面倒です。この場合、nl2p が必要になります。 br 改行を段落 p 改行に置き換えます。

のように直接置き換える方が簡単です。
<?php
function nl2p($text) {
  return "<p>" . str_replace("\n", "</p><p>", $text) . "</p>";
}
?>
ログイン後にコピー

さらに詳細な機能については、以下を試してください:

/**
 * Returns string with newline formatting converted into HTML paragraphs.
 *
 * @param string $string String to be formatted.
 * @param boolean $line_breaks When true, single-line line-breaks will be converted to HTML break tags.
 * @param boolean $xml When true, an XML self-closing tag will be applied to break tags (<br />).
 * @return string
 */
function nl2p($string, $line_breaks = true, $xml = true)
{
    // Remove existing HTML formatting to avoid double-wrapping things
    $string = str_replace(array('<p>', '</p>', '<br>', '<br />'), '', $string);
       
    // It is conceivable that people might still want single line-breaks
    // without breaking into a new paragraph.
    if ($line_breaks == true)
        return '<p>'.preg_replace(array("/([\n]{2,})/i", "/([^>])\n([^<])/i"), array("</p>\n<p>", '<br'.($xml == true ? ' /' : '').'>'), trim($string)).'</p>';
    else
        return '<p>'.preg_replace("/([\n]{1,})/i", "</p>\n<p>", trim($string)).'</p>';
}
ログイン後にコピー


関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート