source: branches/version-2_12-dev/data/smarty_extends/modifier.nl2br_html.php @ 22567

Revision 22567, 1.1 KB checked in by shutta, 11 years ago (diff)

#2043 (typo修正・ソース整形・ソースコメントの改善 for 2.12.4)
Zend Framework PHP 標準コーディング規約のコーディングスタイルへ準拠。
classおよびfunctionの開始波括弧「{」のスタイルを修正。

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2/**
3 * Smarty plugin
4 * @package Smarty
5 * @subpackage plugins
6 */
7
8
9/**
10 * Smarty plugin
11 *
12 * Type:     modifier<br>
13 * Name:     nl2br_html<br>
14 * Date:     Sep 20, 2008
15 * Purpose:  convert \r\n, \r or \n to <<br />>. However, the HTML tag is considered.
16 * Example:  {$text|nl2br_html}
17 * @author   Seasoft 塚田将久
18 * @param string
19 * @return string
20 */
21function smarty_modifier_nl2br_html($string)
22{
23    $lines = preg_split('/(\\r\\n|\\r|\\n)/', $string);
24    $keys = array_keys($lines);
25    $last_key = end($keys); // 最終行のキー
26    foreach ($keys as $key) {
27        if ($key == $last_key) continue; // 最終行はスキップ
28        $line =& $lines[$key];
29        if (
30            !preg_match('/<\/(address|blockquote|caption|center|col|colgroup|dd|del|dir|div|dl|dt|fieldset|form|frame|frameset|h[1-6]|hr|ins|isindex|legend|li|menu|noframes|noscript|ol|optgroup|option|p|pre|table|tbody|td|tfoot|th|thead|tr|ul)>$/i', $line)
31            && !preg_match('/<[a-z0-9]+\s*[^<]*\/?>$/i', $line)
32        ) {
33            $line .= '<br />';
34        }
35        $line .= "\n";
36    }
37    unset($line);
38
39    return implode('', $lines);
40}
Note: See TracBrowser for help on using the repository browser.