【问题标题】:Wrap Text in P tag在 P 标签中换行
【发布时间】:2010-11-05 16:23:21
【问题描述】:

我正在尝试弄清楚如何像这样换行:

Morbi nisl tortor, consectetur vitae laoreet 欧盟,lobortis id ipsum。整数 scelerisque blandit pulvinar。南 tempus mi eget nunc laoreet venenatis。 Proin viverra,在 accumsan 工作 tincidunt, ante mi cursus elit, 非

congue mauris dolor ac elit。保护者 mollis nisl a sem semper ornare。 整数 nunc purus, dapibus nec dignissim sed,格言 eget leo。埃蒂亚姆 在 miut erat pretium fringilla sed

进入这个:

Morbi nisl tortor, consectetur vitae laoreet 欧盟,lobortis id ipsum。整数 scelerisque blandit pulvinar。南 tempus mi eget nunc laoreet venenatis。 Proin viverra,在 accumsan 工作 tincidunt, ante mi cursus elit, 非

congue mauris dolor ac elit。保护者 mollis nisl a sem semper ornare。 整数 nunc purus, dapibus nec dignissim sed,格言 eget leo。埃蒂亚姆 在 miut erat pretium fringilla sed

注意文本周围的p 标签。

【问题讨论】:

  • 你是个小花人!查看text::auto_p() :)

标签: php regex tags


【解决方案1】:

应该这样做

$text = <<<TEXT
Morbi nisl tortor, consectetur vitae laoreet eu, lobortis id ipsum. Integer scelerisque blandit pulvinar. Nam tempus mi eget nunc laoreet venenatis. Proin viverra, erat at accumsan tincidunt, ante mi cursus elit, non

congue mauris dolor ac elit. Maecenas mollis nisl a sem semper ornare. Integer nunc purus, dapibus nec dignissim sed, dictum eget leo. Etiam in mi ut erat pretium fringilla sed
TEXT;

$paragraphedText = "<p>" . implode( "</p>\n\n<p>", preg_split( '/\n(?:\s*\n)+/', $text ) ) . "</p>";

【讨论】:

    【解决方案2】:

    在输入中所有行的循环中使用preg_replace

    $replacement = preg_replace("/(.*)/", "<p>$1</p>", $current_line);
    

    【讨论】:

    • 这将起作用 - 默认情况下 - .不包括换行符。当然,它确实假设内容中没有发生“硬包装”。
    【解决方案3】:
    $str = '<p>'. str_replace('\n\n', '</p><p>', $str) .'</p>';
    

    $str = '<p>'. preg_replace('\n{2,}', '</p><p>', $str) .'</p>';
    

    捕捉2个或更多。

    【讨论】:

    • 错字:$str = '

      '。 str_replace($str, '\n\n', '

      ') .'

      ';
    • 当我使用类似的方法时,我会经常使用 \n\n+ 或 \n{2,} 来允许两个或多个换行符,而不是只需要两个换行符。
    • (如果执行上述操作,则需要将函数替换为正则表达式,而不是常规字符串替换。)
    • 然后我会做类似的事情,只使用 preg_replace 和正则表达式来获得 2+ \n 字符。这完全取决于您的输入结构的定义有多好。
    • 我无法让这个在我的文本上工作,请参见此处:codepad.org/M5mRl8jE。我需要它来包装每一位文本。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多