⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 block.textformat.php

📁 本**志程序专注于个人博客**志
💻 PHP
字号:
<?php/** * Smarty plugin * @package Smarty * @subpackage plugins *//** * Smarty {textformat}{/textformat} block plugin * * Type:     block function<br> * Name:     textformat<br> * Purpose:  format text a certain way with preset styles *           or custom wrap/indent settings<br> * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat} *       (Smarty online manual) * @param array * <pre> * Params:   style: string (email) *           indent: integer (0) *           wrap: integer (80) *           wrap_char string ("\n") *           indent_char: string (" ") *           wrap_boundary: boolean (true) * </pre> * @author Monte Ohrt <monte at ohrt dot com> * @param string contents of the block * @param Smarty clever simulation of a method * @return string string $content re-formatted */function smarty_block_textformat($params, $content, &$smarty){    if (is_null($content)) {        return;    }    $style = null;    $indent = 0;    $indent_first = 0;    $indent_char = ' ';    $wrap = 80;    $wrap_char = "\n";    $wrap_cut = false;    $assign = null;        foreach ($params as $_key => $_val) {        switch ($_key) {            case 'style':            case 'indent_char':            case 'wrap_char':            case 'assign':                $$_key = (string)$_val;                break;            case 'indent':            case 'indent_first':            case 'wrap':                $$_key = (int)$_val;                break;            case 'wrap_cut':                $$_key = (bool)$_val;                break;            default:                $smarty->trigger_error("textformat: unknown attribute '$_key'");        }    }    if ($style == 'email') {        $wrap = 72;    }    // split into paragraphs    $_paragraphs = preg_split('![\r\n][\r\n]!',$content);    $_output = '';    for($_x = 0, $_y = count($_paragraphs); $_x < $_y; $_x++) {        if ($_paragraphs[$_x] == '') {            continue;        }        // convert mult. spaces & special chars to single space        $_paragraphs[$_x] = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'), array(' ',''), $_paragraphs[$_x]);        // indent first line        if($indent_first > 0) {            $_paragraphs[$_x] = str_repeat($indent_char, $indent_first) . $_paragraphs[$_x];        }        // wordwrap sentences        $_paragraphs[$_x] = wordwrap($_paragraphs[$_x], $wrap - $indent, $wrap_char, $wrap_cut);        // indent lines        if($indent > 0) {            $_paragraphs[$_x] = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraphs[$_x]);        }    }    $_output = implode($wrap_char . $wrap_char, $_paragraphs);    return $assign ? $smarty->assign($assign, $_output) : $_output;}/* vim: set expandtab: */?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -