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


PHP clsTinyButStrong::f_Loc_Enlarge_Find方法代码示例

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


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

示例1: f_Loc_EnlargeToTag

 function f_Loc_EnlargeToTag(&$Txt, &$Loc, $TagStr, $RetInnerSrc)
 {
     //Modify $Loc, return false if tags not found, returns the inner source of tag if $RetInnerSrc=true
     $AliasLst =& $GLOBALS['_TBS_BlockAlias'];
     // Analyze string
     $Ref = 0;
     $LevelStop = 0;
     $i = 0;
     $TagFct = array();
     $TagLst = array();
     while ($TagStr !== '') {
         // get next tag
         $p = strpos($TagStr, '+');
         if ($p === false) {
             $t = $TagStr;
             $TagStr = '';
         } else {
             $t = substr($TagStr, 0, $p);
             $TagStr = substr($TagStr, $p + 1);
         }
         do {
             // Check parentheses, relative position and single tag
             $t = trim($t);
             $e = strlen($t) - 1;
             // pos of last char
             if ($e > 1 && $t[0] === '(' && $t[$e] === ')') {
                 if ($Ref === 0) {
                     $Ref = $i;
                 }
                 if ($Ref === $i) {
                     $LevelStop++;
                 }
                 $t = substr($t, 1, $e - 1);
             } else {
                 if ($e >= 0 && $t[$e] === '/') {
                     $t = substr($t, 0, $e);
                 }
                 // for compatibilty
                 $e = false;
             }
         } while ($e !== false);
         if (isset($AliasLst[$t])) {
             $a = $AliasLst[$t];
             if (is_string($a)) {
                 if ($i > 999) {
                     return false;
                 }
                 // prevent from circular alias
                 $TagStr = $TagStr === '' ? $a : $a . '+' . $TagStr;
             } else {
                 $TagLst[$i] = $t;
                 $TagFct[$i] = $a;
                 $i++;
             }
         } else {
             $TagLst[$i] = $t;
             $TagFct[$i] = false;
             $i++;
         }
     }
     $TagMax = $i - 1;
     // Find tags that embeds the locator
     if ($LevelStop === 0) {
         $LevelStop = 1;
     }
     // First tag of reference
     $TagO = clsTinyButStrong::f_Loc_Enlarge_Find($Txt, $TagLst[$Ref], $TagFct[$Ref], $Loc->PosBeg - 1, false, $LevelStop);
     if ($TagO === false) {
         return false;
     }
     $PosBeg = $TagO->PosBeg;
     $LevelStop += -$TagO->RightLevel;
     // RightLevel=1 only if the tag is single and embeds $Loc, otherwise it is 0
     if ($LevelStop > 0) {
         $TagC = clsTinyButStrong::f_Loc_Enlarge_Find($Txt, $TagLst[$Ref], $TagFct[$Ref], $Loc->PosEnd + 1, true, -$LevelStop);
         if ($TagC == false) {
             return false;
         }
         $PosEnd = $TagC->PosEnd;
         $InnerLim = $TagC->PosBeg;
     } else {
         $PosEnd = $TagO->PosEnd;
         $InnerLim = $PosEnd + 1;
     }
     $RetVal = true;
     if ($RetInnerSrc) {
         $RetVal = '';
         if ($Loc->PosBeg > $TagO->PosEnd) {
             $RetVal .= substr($Txt, $TagO->PosEnd + 1, min($Loc->PosBeg, $InnerLim) - $TagO->PosEnd - 1);
         }
         if ($Loc->PosEnd < $InnerLim) {
             $RetVal .= substr($Txt, max($Loc->PosEnd, $TagO->PosEnd) + 1, $InnerLim - max($Loc->PosEnd, $TagO->PosEnd) - 1);
         }
     }
     // Other tags forward
     $TagC = true;
     for ($i = $Ref + 1; $i <= $TagMax; $i++) {
         $x = $TagLst[$i];
         if ($x !== '' && $TagC !== false) {
             $TagC = clsTinyButStrong::f_Loc_Enlarge_Find($Txt, $x, $TagFct[$i], $PosEnd + 1, true, 0);
//.........这里部分代码省略.........
开发者ID:reggi49,项目名称:plansys,代码行数:101,代码来源:tbs_class_php4.php


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