Revision 20540,
1.1 KB
checked in by Seasoft, 12 years ago
(diff) |
#627(ソース整形・ソースコメントの改善)
|
-
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 | */ |
---|
21 | function smarty_modifier_nl2br_html($string) { |
---|
22 | $lines = preg_split('/(\\r\\n|\\r|\\n)/', $string); |
---|
23 | $keys = array_keys($lines); |
---|
24 | $last_key = end($keys); // 最終行のキー |
---|
25 | foreach ($keys as $key) { |
---|
26 | if ($key == $last_key) continue; // 最終行はスキップ |
---|
27 | $line =& $lines[$key]; |
---|
28 | if ( |
---|
29 | !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) |
---|
30 | && !preg_match('/<[a-z0-9]+\s*[^<]*\/?>$/i', $line) |
---|
31 | ) { |
---|
32 | $line .= '<br />'; |
---|
33 | } |
---|
34 | $line .= "\n"; |
---|
35 | } |
---|
36 | unset($line); |
---|
37 | |
---|
38 | return implode('', $lines); |
---|
39 | } |
---|
40 | |
---|
41 | ?> |
---|
Note: See
TracBrowser
for help on using the repository browser.