コード例 #1
0
 static function f_Loc_PrmCompute(&$Txt, &$Loc, &$SubName, $Status, $XmlTag, $DelimChr, $DelimCnt, $PosName, $PosNend, $PosVal, $Pos, $WithPos)
 {
     if ($Status === 0) {
         $SubName = false;
     } else {
         if ($Status === 1) {
             $x = substr($Txt, $PosName, $Pos - $PosName);
         } else {
             $x = substr($Txt, $PosName, $PosNend - $PosName);
         }
         if ($XmlTag) {
             $x = strtolower($x);
         }
         if ($SubName) {
             $Loc->SubName = trim($x);
             $SubName = false;
         } else {
             if ($Status === 4) {
                 $v = trim(substr($Txt, $PosVal, $Pos - $PosVal));
                 if ($DelimCnt === 1) {
                     // Delete quotes inside the value
                     if ($v[0] === $DelimChr) {
                         $len = strlen($v);
                         if ($v[$len - 1] === $DelimChr) {
                             $v = substr($v, 1, $len - 2);
                             $v = str_replace($DelimChr . $DelimChr, $DelimChr, $v);
                         }
                     }
                 }
             } else {
                 $v = true;
             }
             if ($x === 'if') {
                 clsTinyButStrong::f_Loc_PrmIfThen($Loc, true, $v);
             } elseif ($x === 'then') {
                 clsTinyButStrong::f_Loc_PrmIfThen($Loc, false, $v);
             } else {
                 $Loc->PrmLst[$x] = $v;
                 if ($WithPos) {
                     $Loc->PrmPos[$x] = array($PosName, $PosNend, $PosVal, $Pos, $DelimChr, $DelimCnt);
                 }
             }
         }
     }
 }