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

📄 textile.php

📁 中国源码站下载
💻 PHP
📖 第 1 页 / 共 3 页
字号:
        foreach($text as $line) {                $offtags = ('code|pre|kbd|notextile');                                    /*  matches are off if we're between <code>, <pre> etc. */                if (preg_match('/<('.$offtags.')>/i',$line)) $codepre = true;                if (preg_match('/<\/('.$offtags.')>/i',$line)) $codepre = false;                            if (!preg_match("/<.*>/",$line) && $codepre == false) {                    $line = preg_replace($glyph_search,$glyph_replace,$line);                }                    /* do htmlspecial if between <code> */                if ($codepre == true) {                    $line = htmlspecialchars($line,ENT_NOQUOTES,"UTF-8");                    $line = preg_replace('/&lt;(\/?'.$offtags.')&gt;/',"<$1>",$line);                }            $glyph_out[] = $line;        }        return join('',$glyph_out);    }    }// -------------------------------------------------------------    function textile_iAlign($in)     {        $vals = array(            '<'=>'left',            '='=>'center',            '>'=>'right');        return (isset($vals[$in])) ? $vals[$in] : '';    }// -------------------------------------------------------------    function textile_hAlign($in)     {        $vals = array(            '<'=>'left',            '='=>'center',            '>'=>'right',            '<>'=>'justify');        return (isset($vals[$in])) ? $vals[$in] : '';    }// -------------------------------------------------------------    function textile_vAlign($in)     {        $vals = array(            '^'=>'top',            '-'=>'middle',            '~'=>'bottom');        return (isset($vals[$in])) ? $vals[$in] : '';    }// -------------------------------------------------------------    function textile_encode_high($text,$charset="UTF-8")     {        $cmap = textile_cmap();        return mb_encode_numericentity($text, $cmap, $charset);    }// -------------------------------------------------------------    function textile_decode_high($text,$charset="UTF-8")     {        $cmap = textile_cmap();        return mb_decode_numericentity($text, $cmap, $charset);    }// -------------------------------------------------------------    function textile_cmap()     {        $f = 0xffff;        $cmap = array(         160,  255,  0, $f,         402,  402,  0, $f,         913,  929,  0, $f,         931,  937,  0, $f,         945,  969,  0, $f,         977,  978,  0, $f,          982,  982,  0, $f,         8226, 8226, 0, $f,         8230, 8230, 0, $f,         8242, 8243, 0, $f,         8254, 8254, 0, $f,         8260, 8260, 0, $f,         8465, 8465, 0, $f,         8472, 8472, 0, $f,         8476, 8476, 0, $f,         8482, 8482, 0, $f,         8501, 8501, 0, $f,         8592, 8596, 0, $f,         8629, 8629, 0, $f,         8656, 8660, 0, $f,         8704, 8704, 0, $f,         8706, 8707, 0, $f,         8709, 8709, 0, $f,         8711, 8713, 0, $f,         8715, 8715, 0, $f,         8719, 8719, 0, $f,         8721, 8722, 0, $f,         8727, 8727, 0, $f,         8730, 8730, 0, $f,         8733, 8734, 0, $f,         8736, 8736, 0, $f,         8743, 8747, 0, $f,         8756, 8756, 0, $f,         8764, 8764, 0, $f,         8773, 8773, 0, $f,         8776, 8776, 0, $f,         8800, 8801, 0, $f,         8804, 8805, 0, $f,         8834, 8836, 0, $f,         8838, 8839, 0, $f,         8853, 8853, 0, $f,         8855, 8855, 0, $f,         8869, 8869, 0, $f,         8901, 8901, 0, $f,         8968, 8971, 0, $f,         9001, 9002, 0, $f,         9674, 9674, 0, $f,         9824, 9824, 0, $f,         9827, 9827, 0, $f,         9829, 9830, 0, $f,         338,  339,  0, $f,         352,  353,  0, $f,         376,  376,  0, $f,          710,  710,  0, $f,         732,  732,  0, $f,         8194, 8195, 0, $f,         8201, 8201, 0, $f,         8204, 8207, 0, $f,         8211, 8212, 0, $f,         8216, 8218, 0, $f,         8218, 8218, 0, $f,         8220, 8222, 0, $f,         8224, 8225, 0, $f,         8240, 8240, 0, $f,         8249, 8250, 0, $f,         8364, 8364, 0, $f);        return $cmap;    }// -------------------------------------------------------------    function textile_popup_help($name,$helpvar,$windowW,$windowH) {        return ' <a target="_blank" href="http://www.textpattern.com/help/?item='.$helpvar.'" onclick="window.open(this.href, \'popupwindow\', \'width='.$windowW.',height='.$windowH.',scrollbars,resizable\'); return false;">'.$name.'</a><br />';            return $out;    }// -------------------------------------------------------------    function textile_txtgps($thing)     {        if (isset($_POST[$thing])){            if (get_magic_quotes_gpc()==1){                return stripslashes($_POST[$thing]);            } else {                return $_POST[$thing];            }        } else {            return '';        }    }// -------------------------------------------------------------// The following functions are used to detextile html, a process// still in development.// -------------------------------------------------------------    function textile_detextile($text) {        $text = preg_replace("/<br \/>\s*/","\n",$text);    $oktags = array('p','ol','ul','li','i','b','em','strong','span','a','h[1-6]',        'table','tr','td','u','del','sup','sub','blockquote');        foreach($oktags as $tag){        $text = preg_replace_callback("/\t*<(".$tag.")\s*([^>]*)>(.*)<\/\\1>/Usi",        "textile_processTag",$text);    }        $glyphs = array(              '&#8217;'=>'\'',        # single closing            '&#8216;'=>'\'',        # single opening            '&#8221;'=>'"',         # double closing            '&#8220;'=>'"',         # double opening            '&#8212;'=>'--',        # em dash            '&#8211;'=>' - ',       # en dash            '&#215;' =>'x',         # dimension sign            '&#8482;'=>'(TM)',      # trademark            '&#174;' =>'(R)',       # registered            '&#169;' =>'(C)',       # copyright            '&#8230;'=>'...'        # ellipsis        );        foreach($glyphs as $f=>$r){            $text = str_replace($f,$r,$text);        }                $list = false;                $text = preg_split("/(<.*>)/U",$text,-1,PREG_SPLIT_DELIM_CAPTURE);            foreach($text as $line){            if ($list == false && preg_match('/<ol/',$line)){                $line = "";                $list = "o";            } else if (preg_match('/<\/ol/',$line)){                $line = "";                $list = false;            } else if ($list == false && preg_match('/<ul/',$line)){                $line = "";                $list = "u";            } else if (preg_match('/<\/ul/',$line)){                $line = "";                $list = false;            } else if ($list == 'o'){                $line = preg_replace('/<li.*>/U','# ', $line);            } else if ($list == 'u'){                $line = preg_replace('/<li.*>/U','* ', $line);            }            $glyph_out[] = $line;        }        $text = implode('',$glyph_out);                $text = preg_replace('/^\t* *p\. /m','',$text);                return textile_decode_high($text);    }// -------------------------------------------------------------    function textile_processTag($matches)     {        list($all,$tag,$atts,$content) = $matches;        $a = textile_splat($atts);#        dump($tag); dump($content); dump($a);        $phr = array(        'em'=>'_',        'i'=>'__',        'b'=>'**',        'strong'=>'*',        'cite'=>'??',        'del'=>'-',        'ins'=>'+',        'sup'=>'^',        'sub'=>'~',        'span'=>'%');                $blk = array('p','h1','h2','h3','h4','h5','h6');        if(isset($phr[$tag])) {            return $phr[$tag].textile_sci($a).$content.$phr[$tag];        } elseif($tag=='blockquote') {            return 'bq.'.textile_sci($a).' '.$content;        } elseif(in_array($tag,$blk)) {            return $tag.textile_sci($a).'. '.$content;        } elseif ($tag=='a') {            $t = textile_filterAtts($a,array('href','title'));            $out = '"'.$content;            $out.= (isset($t['title'])) ? ' ('.$t['title'].')' : '';            $out.= '":'.$t['href'];            return $out;        } else {            return $all;        }    }// -------------------------------------------------------------    function textile_filterAtts($atts,$ok)     {        foreach($atts as $a) {            if(in_array($a['name'],$ok)) {                if($a['att']!='') {                $out[$a['name']] = $a['att'];                }            }        }#        dump($out);        return $out;    }// -------------------------------------------------------------    function textile_sci($a)     {        $out = '';        foreach($a as $t){            $out.= ($t['name']=='class') ? '(='.$t['att'].')' : '';            $out.= ($t['name']=='id') ? '[='.$t['att'].']' : '';            $out.= ($t['name']=='style') ? '{='.$t['att'].'}' : '';            $out.= ($t['name']=='cite') ? ':'.$t['att'] : '';        }        return $out;    }// -------------------------------------------------------------    function textile_splat($attr)  // returns attributes as an array    {        $arr = array();        $atnm = '';        $mode = 0;        while (strlen($attr) != 0){            $ok = 0;            switch ($mode) {                case 0: // name                    if (preg_match('/^([a-z]+)/i', $attr, $match)) {                        $atnm = $match[1]; $ok = $mode = 1;                        $attr = preg_replace('/^[a-z]+/i', '', $attr);                    }                break;                    case 1: // =                    if (preg_match('/^\s*=\s*/', $attr)) {                        $ok = 1; $mode = 2;                        $attr = preg_replace('/^\s*=\s*/', '', $attr);                    break;                    }                    if (preg_match('/^\s+/', $attr)) {                        $ok = 1; $mode = 0;                        $arr[] = array('name'=>$atnm,'whole'=>$atnm,'att'=>$atnm);                        $attr = preg_replace('/^\s+/', '', $attr);                    }                break;                    case 2: // value                    if (preg_match('/^("[^"]*")(\s+|$)/', $attr, $match)) {                        $arr[]=array('name' =>$atnm,'whole'=>$atnm.'='.$match[1],                                'att'=>str_replace('"','',$match[1]));                        $ok = 1; $mode = 0;                        $attr = preg_replace('/^"[^"]*"(\s+|$)/', '', $attr);                    break;                    }                    if (preg_match("/^('[^']*')(\s+|$)/", $attr, $match)) {                        $arr[]=array('name' =>$atnm,'whole'=>$atnm.'='.$match[1],                                'att'=>str_replace("'",'',$match[1]));                        $ok = 1; $mode = 0;                        $attr = preg_replace("/^'[^']*'(\s+|$)/", '', $attr);                    break;                    }                    if (preg_match("/^(\w+)(\s+|$)/", $attr, $match)) {                        $arr[]=                            array('name'=>$atnm,'whole'=>$atnm.'="'.$match[1].'"',                                'att'=>$match[1]);                        $ok = 1; $mode = 0;                        $attr = preg_replace("/^\w+(\s+|$)/", '', $attr);                    }                break;            }            if ($ok == 0){                $attr = preg_replace('/^\S*\s*/', '', $attr);                $mode = 0;            }        }        if ($mode == 1) $arr[] =                 array ('name'=>$atnm,'whole'=>$atnm.'="'.$atnm.'"','att'=>$atnm);              return $arr;    }?>

⌨️ 快捷键说明

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