当前位置: 首页>>代码示例>>PHP>>正文


PHP Typecho_Common::lockHTML方法代码示例

本文整理汇总了PHP中Typecho_Common::lockHTML方法的典型用法代码示例。如果您正苦于以下问题:PHP Typecho_Common::lockHTML方法的具体用法?PHP Typecho_Common::lockHTML怎么用?PHP Typecho_Common::lockHTML使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Typecho_Common的用法示例。


在下文中一共展示了Typecho_Common::lockHTML方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: process

 /**
  * 处理文本
  * 
  * @access public
  * @param string $text 文本
  * @return string
  */
 public static function process($text)
 {
     /** 锁定标签 */
     $text = Typecho_Common::lockHTML($text);
     /** 重置计数器 */
     self::$_uniqueId = 0;
     self::$_blocks = array();
     /** 将已有的段落后面的换行处理掉 */
     $text = preg_replace(array("/<\\/p>\\s+<p(\\s*)/is", "/\\s*<br\\s*\\/?>\\s*/is"), array("</p><p\\1", "<br />"), trim($text));
     /** 将所有非自闭合标签解析为唯一的字符串 */
     $foundTagCount = 0;
     $textLength = strlen($text);
     $uniqueIdList = array();
     if (preg_match_all("/<\\/\\s*([a-z0-9]+)>/is", $text, $matches, PREG_OFFSET_CAPTURE)) {
         foreach ($matches[0] as $key => $match) {
             $tag = $matches[1][$key][0];
             $leftOffset = $match[1] - $textLength;
             $posSingle = strrpos($text, '<' . $tag . '>', $leftOffset);
             $posFix = strrpos($text, '<' . $tag . ' ', $leftOffset);
             $pos = false;
             switch (true) {
                 case false !== $posSingle && false !== $posFix:
                     $pos = max($posSingle, $posFix);
                     break;
                 case false === $posSingle && false !== $posFix:
                     $pos = $posFix;
                     break;
                 case false !== $posSingle && false === $posFix:
                     $pos = $posSingle;
                     break;
                 default:
                     break;
             }
             if (false !== $pos) {
                 $uniqueId = self::makeUniqueId();
                 $uniqueIdList[$uniqueId] = $tag;
                 $tagLength = strlen($tag);
                 $text = substr_replace($text, $uniqueId, $pos + 1 + $tagLength, 0);
                 $text = substr_replace($text, $uniqueId, $match[1] + 7 + $foundTagCount * 10 + $tagLength, 0);
                 // 7 = 5 + 2
                 $foundTagCount++;
             }
         }
     }
     foreach ($uniqueIdList as $uniqueId => $tag) {
         $text = preg_replace_callback("/<({$tag})({$uniqueId})([^>]*)>(.*)<\\/\\1\\2>/is", array('Typecho_Common_Paragraph', 'replaceBlockCallback'), $text, 1);
     }
     $text = self::cutByBlock($text);
     $blocks = array_reverse(self::$_blocks);
     foreach ($blocks as $blockKey => $blockValue) {
         $text = str_replace($blockKey, $blockValue, $text);
     }
     $text = self::fixPragraph($text);
     /** 释放标签 */
     return Typecho_Common::releaseHTML($text);
 }
开发者ID:menmenweiwei,项目名称:blog,代码行数:63,代码来源:Paragraph.php


注:本文中的Typecho_Common::lockHTML方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。