/** * * * @file modifier.url_bold_html.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:40 */ function smarty_modifier_url_bold_html($string) { $logArr['smarty_modifier'] = "modifier_url_bold_html"; $status = 0; $logArr['string'] = $string; if (strlen($string) == 0) { $result = $string; return $result; } $prefix = $GLOBALS['DISPLAY']['BOLD_PREFIX']; $suffix = $GLOBALS['DISPLAY']['BOLD_SUFFIX']; $logArr['prefix'] = $prefix; $logArr['suffix'] = $suffix; $result = hilight_url_bold_html($string, $prefix, $suffix); if (false === $result) { $result = $string; $status = -1; $logArr['result'] = $result; CLog::warning("fail to call hilight_url_bold_html", $status, $logArr, 1); return $result; } $logArr['result'] = $result; CLog::debug("success to call url_bold_html modifier", $status, $logArr, 1); return $result; }
/** * * * @file modifier.format_int.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:47 */ function smarty_modifier_format_int($number) { $logArr['smarty_modifier'] = "modifier_format_int"; $status = 0; $number = sprintf("%F", $number); $logArr['number'] = $number; $size = strlen($number); for ($i = $size - 1, $j = 1; $i >= 0; $i--, $j++) { $word = substr($number, $i, 1); if ($word === ".") { $result = ""; $j = 0; continue; } if ($i < 3) { $result = $word . $result; } else { $result = "0" . $result; } if ($j % 3 == 0 && $i != 0) { $result = "," . $result; } } $logArr['result'] = $result; CLog::debug("success to call format_int", $status, $logArr, 1); return $result; }
/** * * * @file modifier.url_limit.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:40 */ function smarty_modifier_url_limit($string, $length, $escaped = false) { $logArr['smarty_modifier'] = "modifier_url_limit"; $status = 0; $logArr['url'] = $string; $logArr['limit_len'] = $length; $logArr['escaped'] = $escaped; if (strlen($string) == 0) { $result = $string; return $result; } $result = trim(hilight_url_limit($string, $length, $escaped)); $resultTmp = explode(" ", $result); $result = implode("", $resultTmp); if (false === $result) { $result = $string; $status = -1; $logArr['result'] = $result; CLog::warning("fail to call hilight_url_limit", $status, $logArr, 1); return $string; } $logArr['result'] = $result; CLog::debug("success to call url_limit", $status, $logArr, 1); return $result; }
/** * * * @file modifier.limitlen.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:51 */ function smarty_modifier_string_display_len($string) { $logArr['smarty_modifier'] = "modifier_string_display_len"; $status = 0; $logArr['string'] = $string; if (strlen($string) == 0) { $result = 0; return $result; } $result = hilight_stringDisplayLen($string); $logArr['result'] = $result; CLog::debug("success to call limitlen", $status, $logArr, 1); return $result; }
/** * * * @file modifier.firstpart.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:49 */ function smarty_modifier_firstpart($string, $part) { $logArr['smarty_modifier'] = "modifier_firstpart"; $status = 0; $logArr['string'] = $string; $logArr['part'] = $part; $pos = strrpos($string, $part); $string_size = strlen($string); $part_size = strlen($part); $result = $string; if ($pos !== false && $string_size === $part_size + $pos) { $result = substr($string, 0, $string_size - $part_size); } $logArr['result'] = $result; CLog::debug("success to call firstpart", $status, $logArr, 1); return $result; }
/** * * * @file modifier.host.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:47 */ function smarty_modifier_host($string) { /* $status = 0; $logArr['url'] = $string; $url = parse_url($string); $result = $url['host']; if( empty($result) ) { $length = strlen($string); $i = strpos($string, ':'); $j = strpos($string, '/'); if( $i > 0 && $j > 0 ) { $length = $i > $j ? $j : $i; }elseif($i > 0) { $length = $i; }elseif($j > 0) { $length = $j; } $result = substr($string, 0, $length); } $logArr['result'] = $result; CLog::debug("success to call host", $status, $logArr, 1); return $result; */ $logArr['smarty_modifier'] = "modifier_host"; $status = 0; $logArr['url'] = $string; $host = $string; if (strncasecmp($host, "http://", 7) == 0) { $host = substr($host, 7); } $pos1 = strpos($host, '/'); $pos2 = strpos($host, ':'); $pos = $pos1 === false || $pos2 !== false && $pos2 < $pos1 ? $pos2 : $pos1; if ($pos === false) { $result = $host; } else { $result = substr($host, 0, $pos); } $logArr['result'] = $result; CLog::debug("success to call host", $status, $logArr, 1); return $result; }
/** * * * @file modifier.wbrlimit.php * @package plugins * @author lanrui@baidu.com * @date 2013-01-05 20:16 */ function smarty_modifier_wbrlimit($string, $mb_len) { //return $string; $logArr['smarty_modifier'] = "modifier_wbrlimit"; $status = 0; $logArr['string'] = $string; $logArr['len'] = $mb_len; if (strlen($string) == 0) { $result = $string; return $result; } $cur_pos = 0; $cur_mb_len = 0; $result = ""; $flag = 0; $string_len = strlen($string); while ($cur_pos < $string_len) { $start = strpos($string, 1, $cur_pos); if ($start !== false) { $substring = mb_substr($string, $cur_pos, $start - $cur_pos); if ($cur_mb_len + mb_strlen($substring) < $mb_len) { $cur_mb_len = $cur_mb_len + mb_strlen($substring); $result = $result . $substring; $cur_pos = $start + 1; } elseif (mb_strlen($substring) >= $mb_len) { //in case a single word is longer than a line's length $cur_mb_len = 0; $cur_pos = $start + 1; $result = $result . $substring . "<wbr>"; } else { $result = $result . "<wbr>"; $cur_mb_len = 0; } } else { $logArr['result'] = $result; CLog::debug("wbrlimit succeed", $status, $logArr, 1); break; } } return $result; }
/** * * @param $strImgSrc unknown_type * @return boolean unknown data-src={%$ls.src%} data-b64-id={%$ls.imgkey%}> * <img src={%$ls.src%}> * */ function smarty_modifier_img_base64_render($strImgSrc) { if (empty($strImgSrc)) { CLog::warning("fail to get img base64 src id, src null"); return false; } $arrQueryInfo = CSmarty::getQueryInfo(); $strPage = ""; if (!isset($arrQueryInfo['base64']) || $arrQueryInfo['base64'] !== 'on') { $strPage = 'src="' . $strImgSrc . '"'; return $strPage; } if (!isset($arrQueryInfo['base64_sids_for_plugin']) || empty($arrQueryInfo['base64_sids_for_plugin'][$strImgSrc])) { $strPage = 'src="' . $strImgSrc . '"'; return $strPage; } else { $strPage = 'data-src="' . $strImgSrc . '" ' . 'data-b64-id="' . $arrQueryInfo['base64_sids_for_plugin'][$strImgSrc] . '"'; CLog::debug("get img base64 src id OK"); return $strPage; } }
/** * * * @file modifier.real.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:47 */ function smarty_modifier_real($string) { $logArr['smarty_modifier'] = "modifier_real"; $status = 0; $logArr['string'] = $string; if (strlen($string) == 0) { $result = $string; return $result; } $result = hilight_real($string); if (false == $result) { $result = $string; $status = -1; $logArr['result'] = $result; CLog::warning("fail to call hilight_real", $status, $logArr, 1); return $string; } $logArr['result'] = $result; CLog::debug("success to call real modifier", $status, $logArr, 1); return $result; }
/** * * * @file modifier.vui_escape.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:51 */ function smarty_modifier_vui_escape($string, $type = "html") { $logArr['smarty_modifier'] = "modifier_vui_escape"; $type = strtolower($type); $status = 0; $logArr['string'] = $string; $logArr['type'] = $type; if (strlen($string) == 0) { $result = $string; $status = -1; //CLog::warning("string is empty", $status, $logArr, 1); return $result; } switch ($type) { case "html": $type = ":h"; break; case "javascript": $type = ":j"; break; case "url": $type = ":u"; break; default: $type = ":h"; break; } $result = hilight_escape($string, ":[utf8]" . $type); if (false === $result) { $result = $string; $status = -1; $logArr['result'] = $result; CLog::warning("fail to call vui_escape", $status, $logArr, 1); return $result; } $logArr['result'] = $result; CLog::debug("success to call vui_escape", $status, $logArr, 1); return $result; }
/** * * * @file modifier.endwith.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:49 */ function smarty_modifier_endwith($string, $part) { $logArr['smarty_modifier'] = "modifier_endwith"; $status = 0; $logArr['string'] = $string; $logArr['part'] = $part; if (strlen($part) == 0) { $result = 1; } elseif (strlen($string) == 0) { $result = 0; } else { $pos = strrpos($string, $part); $string_size = strlen($string); $part_size = strlen($part); $result = 0; if ($pos !== false && $string_size === $part_size + $pos) { $result = 1; } } $logArr['result'] = $result; CLog::debug("success to call endwith", $status, $logArr, 1); return $result; }
/** * * @param $strImgSrc unknown_type * @return string "data-b64-id" * */ function smarty_modifier_img_base64_parser($strImgSrc) { if (empty($strImgSrc)) { return ''; } $arrQueryInfo = CSmarty::getQueryInfo(); if (!isset($arrQueryInfo['base64']) || $arrQueryInfo['base64'] !== 'on') { return ''; } if (!isset($arrQueryInfo['base64_left_exp']) || $arrQueryInfo['base64_left_exp'] !== 'on') { return ''; } if (isset($arrQueryInfo['base64_img_sids_left']) && !empty($arrQueryInfo['base64_img_sids_left'][$strImgSrc])) { return $arrQueryInfo['base64_img_sids_left'][$strImgSrc]; CLog::debug("get img base64 src id OK"); } else { if (isset($arrQueryInfo['base64_img_sids']) && !empty($arrQueryInfo['base64_img_sids'][$strImgSrc])) { return $arrQueryInfo['base64_img_sids'][$strImgSrc]; CLog::debug("get img base64 src id OK"); } } return ''; }
/** * * * @file modifier.zhidaoXmlTrans.php * @package plugins * @author liyudong@baidu.com * @date 2011-11-03 10:47 */ function smarty_modifier_zhidaoXmlTrans() { $logArr['smarty_modifier'] = "modifier_zhidaoXmlTrans"; /** * hilight info * @var array */ $hilight_info = CSmarty::getHilightInfo(); $hi_word = $hilight_info['hilightInfo']['hi_word']; $hi_off = $hilight_info['hilightInfo']['hi_off']; $hi_num = $hilight_info['hilightInfo']['hi_num']; $status = 0; if (isset($hi_off[0])) { $hi_off[0] = 0; } $result = hilight_zhidaoXmlTrans($hi_word, $hi_off, $hi_num); if (false == $result) { $status = -1; CLog::warning("fail to call hilight_zhidaoXmlTrans", $status, $logArr, 1); return false; } CLog::debug("success to call zhidaoXmlTrans modifier", $status, $logArr, 1); return $result; }
public static function parse_image_conf($arrResultData, &$arrImgList, $arrImgConf) { $cnt = count($arrImgConf); $status = -1; if (1 === $cnt) { $paths = explode('.', $arrImgConf[0]); $paths_count = count($paths); switch ($paths_count) { /** * * @example : @enc : tplData */ case 1: $link = $arrResultData[$paths[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } break; /** * * @example : @enc : tplData.loc */ /** * * @example : @enc : tplData.loc */ case 2: $link = $arrResultData[$paths[0]][$paths[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths['0']}][{$paths['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } break; /** * * @example : tplData.moreprice.link */ /** * * @example : tplData.moreprice.link */ case 3: $link = $arrResultData[$paths[0]][$paths[1]][$paths[2]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } break; /** * * @example : tplData.moreprice.link.link */ /** * * @example : tplData.moreprice.link.link */ case 4: $link = $arrResultData[$paths[0]][$paths[1]][$paths[2]][$paths[3]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}][{$paths['3']}][{$k}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } break; /** * * @example : tplData.moreprice.link.link.link */ /** * * @example : tplData.moreprice.link.link.link */ case 5: $link = $arrResultData[$paths[0]][$paths[1]][$paths[2]][$paths[3]][$paths[4]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}][{$paths['3']}][{$paths['4']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } break; } return true; } if (2 === $cnt) { $paths_one = explode('.', $arrImgConf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $arrImgConf[1]); $paths_two_count = count($paths_two); $total_count = $paths_one_count + $paths_two_count; switch ($total_count) { /** * * @example : tplData[].morebrand */ case 2: foreach ($arrResultData[$paths_one[0]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } break; case 3: /** * * @example : tplData[].morebrand.link */ if (1 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand[].link */ } else { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } break; case 4: /** * * @example : tplData[].morebrand.link.sublink */ if (1 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand[].link.sublink */ } else { if (2 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key => $value) { if (!is_array($arrResultData[$paths_one[0]][$paths_one[1]]) || !is_array($arrResultData[$paths_one[0]][$paths_one[1]][$key]) || !is_array($arrResultData[$paths_one[0]][$paths_one[1]][$key][$paths_two[0]])) { continue; } $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand.link[].sublink */ } else { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key}][{$paths_two['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } break; case 5: /** * * @example : tplData[].morebrand.link.sublink.subsublink */ if (1 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$paths_two[3]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}][{$paths_two['3']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand[].link.sublink.subsublink */ } else { if (2 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand.link[].sublink.subsublink */ } else { if (3 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } /** * * @example : tplData.morebrand.link.sublink[].subsublink */ } else { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]] as $key => $value) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$paths_one['3']}][{$key}][{$paths_two['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } } break; } return true; } if (3 === $cnt) { $paths_one = explode('.', $arrImgConf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $arrImgConf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $arrImgConf[2]); $paths_three_count = count($paths_three); $total_count = $paths_one_count + $paths_two_count + $paths_three_count; switch ($total_count) { /** * * @example : tplData[].morebrand[].link */ case 3: foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } break; case 4: /** * * @example : tplData.morebrand[].link[].sublink */ if (2 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData[].morebrand.link[].sublink */ } else { if (2 === $paths_two_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData[].morebrand[].link.sublink */ } else { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } } break; case 5: /** * * @example : tplData.morebrand.link[].sublink[].subsublink */ if (3 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData[].morebrand.link.sublink[].subsublink */ } else { if (3 === $paths_two_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData[].morebrand[].link.sublink.subsublink */ } else { if (3 === $paths_three_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$paths_three[2]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}][{$paths_three['2']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData.morebrand[].link.sublink[].subsublink */ } else { if (2 === $paths_one_count && 2 === $paths_two_count && 1 === $paths_three_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData.morebrand[].link[].sublink.subsublink */ } else { if (2 === $paths_one_count && 1 === $paths_two_count && 2 === $paths_three_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } /** * * @example : tplData[].morebrand.link[].sublink.subsublink */ } else { if (1 === $paths_one_count && 2 === $paths_two_count && 2 === $paths_three_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } } } } } } break; } return true; } if (4 === $cnt) { $paths_one = explode('.', $arrImgConf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $arrImgConf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $arrImgConf[2]); $paths_three_count = count($paths_three); $paths_four = explode('.', $arrImgConf[3]); $paths_four_count = count($paths_four); $total_count = $paths_one_count + $paths_two_count + $paths_three_count + $paths_four_count; switch ($total_count) { case 4: /** * * @example : tplData[].morebrand[].link[].sublink */ foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } break; case 5: /** * * @example : * tplData.morebrand[].link[].sublink[].subsublink */ if (2 === $paths_one_count) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $arrResultData[$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } /** * * @example : * tplData[].morebrand.link[].sublink[].subsublink */ } else { if (2 === $paths_two_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } /** * * @example : * tplData[].morebrand[].link.sublink[].subsublink */ } else { if (2 === $paths_three_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]] as $key2 => $value2) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}][{$key2}][{$paths_four['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } /** * * @example : * tplData[].morebrand[].link[].sublink.subsublink */ } else { if (2 === $paths_four_count) { foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$paths_four[1]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}][{$paths_four['1']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } } } } } break; } return true; } if (5 === $cnt) { $paths_one = explode('.', $arrImgConf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $arrImgConf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $arrImgConf[2]); $paths_three_count = count($paths_three); $paths_four = explode('.', $arrImgConf[3]); $paths_four_count = count($paths_four); $paths_five = explode('.', $arrImgConf[4]); $paths_five_count = count($paths_five); $total_count = $paths_one_count + $paths_two_count + $paths_three_count + $paths_four_count + $paths_five_count; switch ($total_count) { case 5: /** * * @example : * tplData[].morebrand[].link[].sublink[].subsublink */ foreach ($arrResultData[$paths_one[0]] as $key0 => $value0) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { foreach ($arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]] as $key3 => $value3) { $link = $arrResultData[$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$key3][$paths_five[0]]; if (!empty($link)) { if (!is_array($link)) { self::get_image_src($arrImgList, $link); } else { foreach ($link as $k => $v) { self::get_image_src($arrImgList, $v); } } } else { $logArr['img'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}][{$key3}][{$paths_five['0']}]"; CLog::debug("img src to get id is empty", $status, $logArr, 1); return false; } } } } } break; default: break; } return true; } if ($cnt > 5) { $logArr['path_conf'] = implode("_", $arrImgConf); CLog::warning("img src to get id is more than 5 level", $status, $logArr, 1); } return false; }
function strategy_function_3(&$data, $index) { $tempnames = array(); $flag = 0; $hasreplaceResult = 0; $hasRealPSResult = 0; $replaceLocation = -1; $realResultPosiont = -1; $fromStdstg = $GLOBALS['STRATEGY' . $index]['STRATEGY_CONF'][1]; $toStdstg = $GLOBALS['STRATEGY' . $index]['STRATEGY_CONF'][0]; if (empty($fromStdstg) || empty($toStdstg)) { return 0; } // 19是时效性结果 if (!empty($data['uiData']['asResult']['item']) && is_array($data['uiData']['asResult']['item'])) { // 知心结果都在第一个位置,如果第一个位置不存在知心结果,那么不处理 foreach ($data['uiData']['asResult']['item'] as $key => $value) { if ($value['comeFrome'] == "SP") { if (!empty($value['dispData'])) { if ($value['dispData']['StdStg'] == $toStdstg) { $replaceLocation = $key; $hasreplaceResult = 1; break; } } } } // $hasreplaceResult = 0; if ($hasreplaceResult == 1) { foreach ($data['uiData']['asResult']['item'] as $key => &$value) { if ($value['comeFrome'] == "SP") { if (!empty($value['dispData'])) { if ($value['dispData']['StdStg'] == $fromStdstg) { $hasRealPSResult = 1; $realResult =& $data['uiData']['asResult']['item'][$replaceLocation]['dispData']['resultData']['tplData']; $hasRealResult = 0; $realResultNum = 0; $hasPhoto = 0; if (empty($realResult['newssubject'])) { $subject = array(); $subjectArray = array(); $subjectArray['subject'] = $data['uiData']['queryInfo']['wordNoSyntax'] . "的最新相关消息"; $subjectArray['link'] = $value['offsetInfo']['urlEncoded']; } $newsOld = $realResult['news']; unset($realResult['news']); for ($i = 0; $i < 10; $i++) { CLog::debug("realResultNum {$realResultNum}"); $hasRealResult = 0; if ($realResultNum == 0 && !empty($value['dispData']['ThumURL' . $i]) && !empty($value['dispData']['SubTitleUrl' . $i])) { $realResult['news'][$realResultNum]['photo'] = $value['dispData']['ThumURL' . $i]; $realResult['news'][$realResultNum]['link'] = $value['dispData']['SubTitleUrl' . $i]; $realResultNum++; $hasPhoto = 1; } if (!empty($value['dispData']['SubTitleUrl' . $i])) { $realResult['news'][$realResultNum]['link'] = $value['dispData']['SubTitleUrl' . $i]; $hasRealResult++; } if (!empty($value['dispData']['SubTitle' . $i])) { $realResult['news'][$realResultNum]['subject'] = $value['dispData']['SubTitle' . $i]; $hasRealResult++; } if (!empty($value['dispData']['SiteName' . $i])) { $realResult['news'][$realResultNum]['from'] = $value['dispData']['SiteName' . $i]; $hasRealResult++; } if (!empty($value['dispData']['PostTime' . $i])) { $realResult['news'][$realResultNum]['time'] = $value['dispData']['PostTime' . $i]; $hasRealResult++; } if (!empty($value['dispData']['SubAbs' . $i])) { $realResult['news'][$realResultNum]['summary'] = $value['dispData']['SubAbs' . $i]; } if ($hasRealResult > 3) { $realResultNum++; // PM要求最大结果条数为三 if ($hasPhoto == 1 && $realResultNum >= 4 || $hasPhoto == 0 && $realResultNum >= 3) { break; } } else { if ($hasRealResult == 0 && $realResultNum == 0 || $hasRealResult != 0) { $realResult['news'] = $newsOld; array_splice($data['uiData']['asResult']['item'], $key, 1); $data['uiData']['asResult']['spResutlNum'] = $data['uiData']['asResult']['spResutlNum'] - 1; break 2; } break; } } $realResult['news#num#baidu'] = $realResultNum; // unset($data['uiData']['asResult']['item'][$key]); // unset($replaceLocation); // unset($data['uiData']['asResult']['item'][$replaceLocation]['resultData']['tplData']['news']); // $realResult = // $data['uiData']['asResult']['item'][$key]; array_splice($data['uiData']['asResult']['item'], $key, 1); $data['uiData']['asResult']['spResutlNum'] = $data['uiData']['asResult']['spResutlNum'] - 1; break; } } } } if ($hasRealPSResult == 0) { unset($data['uiData']['asResult']['item'][$replaceLocation]['dispData']['resultData']['tplData']['news']); modifyNewsIndex($data['uiData']['asResult']['item'][$replaceLocation]['dispData']['resultData']['tplData']['index'], 0, "news"); } else { // 对index进行处理 modifyNewsIndex($data['uiData']['asResult']['item'][$replaceLocation]['dispData']['resultData']['tplData']['index'], 1, "news"); } } } }
public function run(&$arrData, $arrDefConf) { $time_start = Volatile::microtime(true) * 1000; if (empty($arrData) || !is_array($arrData)) { CLog::warning("get image sid failed, param null"); $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_PARAM_ERR; return false; } // 整体功能开关 $arrConf = Util::getConf('/image_base', 'IMAGE_BASE'); if ($arrConf['base64'] !== 'on') { CLog::debug("get image sid turn off"); $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_OFF; return false; } // 无用代码,小流量使用 if (!isset($arrConf['base64_tempname']) || empty($arrConf['base64_tempname'])) { $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_NOT_LEGAL; return false; } if (strcasecmp($arrData['uiControl']['templateName'], $arrConf['base64_tempname']) == 0) { $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_NOT_LEGAL; return false; } // 浏览器识别IE6、IE7 $bolFlag = $this->recognizeUserAgent($arrData); if ($bolFlag !== true) { CLog::debug("get image sid useragent not legal"); $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_BROWSER; return false; } // for small flow /* if (isset ( $arrConf ['base64_small_flow'] ) && $arrConf ['base64_small_flow'] === on) { $arrSample = Util::getConf ( '/sample_variable', 'sample_variable/IMAGE_BASE64' ); $bolSampleExp = false; $bolSampleMat = false; if (is_array ( $arrSample ) && ! empty ( $arrSample ) && ! empty ( $arrSample ['Contexted'] )) { if (is_array ( $arrData ['uiData'] ['queryInfo'] ['samplingId'] ) && ! empty ( $arrData ['uiData'] ['queryInfo'] ['samplingId'] )) { $arrSids = $arrData ['uiData'] ['queryInfo'] ['samplingId']; $arrSids = array_flip ( $arrSids ); foreach ( $arrSample ['Contexted'] as $arrTemp ) { if (isset ( $arrSids [$arrTemp ['sampling_id']] )) { if ($arrTemp ['value'] == $arrConf ['exp_value']) { $bolSampleExp = true; break; } else if ($arrTemp ['value'] == $arrConf ['mat_value']) { $bolSampleMat = true; break; } } } } } if ($bolSampleMat === true) { $GLOBALS ['logArr'] ['time_img_base64'] = round ( Volatile::microtime ( true ) * 1000 - $time_start, 2 ); $GLOBALS ['logArr'] ['img_base64_ret'] = self::BASE64_MAT; return false; } if ($bolSampleExp === false) { $GLOBALS ['logArr'] ['time_img_base64'] = round ( Volatile::microtime ( true ) * 1000 - $time_start, 2 ); $GLOBALS ['logArr'] ['img_base64_ret'] = self::BASE64_OTHER; return false; } } */ // 设置左侧小流量开关 $base64LeftOn = false; $leftOpenTpllist = $arrConf['base64_left_tempname']; $leftOpenTpllist = explode(',', $leftOpenTpllist); foreach ($leftOpenTpllist as $leftTplName) { if (strcasecmp($arrData['uiControl']['templateName'], $leftTplName) == 0) { $base64LeftOn = true; } } // 处理右侧结果队列 $arrResult = $arrConf['result']; $arrResult = explode(',', $arrResult); $arrControlInfo =& $arrData['uiControl']; $arrImgIds = array(); $arrImgIdsLeft = array(); $strPlatform = $arrControlInfo['platform']; $strLanguage = $arrControlInfo['language']; $strType = ''; $strTemplateName = ''; $arrImgConf = array(); foreach ($arrResult as $res) { if (is_array($arrData['uiData'][$res]['item']) && !empty($arrData['uiData'][$res]['item'])) { // 处理结果队列的每条结果 foreach ($arrData['uiData'][$res]['item'] as $intIndex => $arrItem) { $strType = empty($arrItem['dispData']['strategy']['type']) ? VUI_TEMPLATE_ALADDIN_TEMPLATE_TYPE : trim($arrItem['dispData']['strategy']['type']); if (empty($arrItem['dispData']['strategy'])) { CLog::debug("get tpl strategy fail"); continue; } $strTemplateName = trim($arrItem['dispData']['strategy']['tempName']); if (empty($strTemplateName)) { CLog::debug("get image sid template name null"); continue; } // 获取tpl.conf内容 $arrImgConf = $this->load_image_tpl_conf($strPlatform, $strLanguage, $strType, $strTemplateName); // 从src中提取sid if (is_array($arrImgConf) && !empty($arrImgConf)) { if (intval($arrImgConf['open_base64']) != 1) { continue; } if (is_array($arrImgConf['img']) && !empty($arrImgConf['img'])) { if ($base64LeftOn === true && strcasecmp($res, "asResult") == 0) { foreach ($arrImgConf['img'] as $arrImgData) { $this->parse_image_conf($arrItem['dispData']['resultData'], $arrImgIdsLeft, $arrImgData); } } else { if (strcasecmp($res, "rightResult") == 0) { /* 处理 右侧展开图片的base64加载问题,控制每单个模板base64加载张数:先读取模板变量$tplData.showrow,如果读不到则默认只加载4张 */ $imgCountLimit = 4; if (is_array($arrItem['dispData']['resultData'])) { $showNum = $arrItem['dispData']['resultData']['tplData']['shownums']; if (!empty($showNum) && is_numeric($showNum) && $showNum > 0 && $showNum < 13) { $imgCountLimit = $showNum; } } //记录当前数组里的图片张数 $tempCount = count($arrImgIds); foreach ($arrImgConf['img'] as $arrImgData) { $this->parse_image_conf($arrItem['dispData']['resultData'], $arrImgIds, $arrImgData); //判断新增张数是否超过切分阈值 if (count($arrImgIds) > $tempCount + $imgCountLimit) { //进行切分,去掉尾部图片 $arrImgIds = array_slice($arrImgIds, 0, $tempCount + $imgCountLimit); //更新当前图片数量值 $tempCount = count($arrImgIds); } } } } } } unset($arrImgConf); } } } // 标记base64是否开启 $base64on = false; if (is_array($arrImgIds) && !empty($arrImgIds)) { $arrData['uiData']['queryInfo']['base64_sids_for_plugin'] = $arrImgIds; //该数组供Smarty插件读取,用于拼装base64形式的图片dom //只要右侧有图片,即开启base64开关 $base64on = true; } //判断是否开启图片预取, 将已设置预取的图片从base64列表中去除. $preImageConf = Util::getConf('/image_predict', 'IMAGE_PREDICT'); if ($preImageConf['predict_get'] === 'on' && $arrData['uiData']['queryInfo']['pageNo'] == 1) { $preImgList = $arrData['uiData']['queryInfo']['viewConfig']['predictImg']; if (!empty($preImgList)) { if (!empty($preImgList['right']['sidList'])) { $img_diff = array_diff($arrImgIds, $preImgList['right']['sidList']); #当图片预取list与实际图片list小于,配置差值时关闭base64 $arrImgIds = $img_diff; } if (!empty($preImgList['left']['sidList'])) { $img_diff_left = array_diff($arrImgIdsLeft, $preImgList['left']['sidList']); #当图片预取list与实际图片list小于,配置差值时关闭base64 $arrImgIdsLeft = $img_diff_left; } } } // 设置base64模板变量 if (is_array($arrImgIds) && !empty($arrImgIds)) { //去重后的右侧图片 $arrData['uiData']['queryInfo']['base64_img_sids'] = $arrImgIds; } if (is_array($arrImgIdsLeft) && !empty($arrImgIdsLeft)) { //左侧图片 $arrData['uiData']['queryInfo']['base64_img_sids_left'] = $arrImgIdsLeft; $base64on = true; if ($base64LeftOn === true) { $arrData['uiData']['queryInfo']['base64_left_exp'] = 'on'; } } if ($base64on) { $arrData['uiData']['queryInfo']['base64'] = 'on'; $arrData['uiData']['queryInfo']['base64_domain'] = $arrConf['domain']; CSmarty::setQueryInfo($arrData['uiData']['queryInfo']); $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_OK; return true; } $GLOBALS['logArr']['time_img_base64'] = round(Volatile::microtime(true) * 1000 - $time_start, 2); $GLOBALS['logArr']['img_base64_ret'] = self::BASE64_NOT_OK; return false; }
public function send($strData, $intDataLength, $intTimeoutMs = null) { if (!is_null($intTimeoutMs)) { $this->setTimeout($this->_intReadTimeoutMS, $intTimeoutMs); } if (!is_resource($this->_sock)) { // maybe send called without connect? if ($this->connect() === false) { CLog::warning(sprintf('%s: try sending with no valid socket', __METHOD__)); return false; } } $intSecond = intval($this->_intWriteTimeoutMS / 1000); $intMicroSecond = intval($this->_intWriteTimeoutMS % 1000 * 1000); stream_set_timeout($this->_sock, $intSecond, $intMicroSecond); $intSent = fwrite($this->_sock, $strData, $intDataLength); if ($intSent == $intDataLength) { CLog::debug(sprintf('%s: sent %d bytes to %s:%d', __METHOD__, $intSent, $this->_strRemoteHost, $this->_intRemotePort)); return $intSent; } else { list($intErrorNo, $strErrorMessage) = $this->getLastError(); CLog::warning(sprintf('%s: error sending %d bytes to %s:%d, ' . '%d got, err(%d:%s)', __METHOD__, $intDataLength, $this->_strRemoteHost, $this->_intRemotePort, $intSent, $intErrorNo, $strErrorMessage)); return false; } }
/** * @brief process aladdin data * @param array $data * @param array $path_conf */ function process_aladdin_data(&$data, &$path_conf) { $cnt = count($path_conf); $status = -1; if (1 === $cnt) { $paths = explode('.', $path_conf[0]); $paths_count = count($paths); switch ($paths_count) { /** * @example : @enc : tplData */ case 1: $link = $data['resultData'][$paths[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } break; /** * @example : @enc : tplData.loc */ /** * @example : @enc : tplData.loc */ case 2: $link = $data['resultData'][$paths[0]][$paths[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths[0]][$paths[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths[0]][$paths[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths['0']}][{$paths['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } break; /** * @example : tplData.moreprice.link */ /** * @example : tplData.moreprice.link */ case 3: $link = $data['resultData'][$paths[0]][$paths[1]][$paths[2]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } break; /** * @example : tplData.moreprice.link.link */ /** * @example : tplData.moreprice.link.link */ case 4: $link = $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}][{$paths['3']}][{$k}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } break; /** * @example : tplData.moreprice.link.link.link */ /** * @example : tplData.moreprice.link.link.link */ case 5: $link = $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]][$paths[4]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]][$paths[4]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths[0]][$paths[1]][$paths[2]][$paths[3]][$paths[4]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths['0']}][{$paths['1']}][{$paths['2']}][{$paths['3']}][{$paths['4']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } break; } return; } if (2 === $cnt) { $paths_one = explode('.', $path_conf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $path_conf[1]); $paths_two_count = count($paths_two); $total_count = $paths_one_count + $paths_two_count; switch ($total_count) { /** * @example : tplData[].morebrand */ case 2: foreach ($data['resultData'][$paths_one[0]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } break; case 3: /** * @example : tplData[].morebrand.link */ if (1 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand[].link */ } else { if (!empty($data['resultData'][$paths_one[0]][$paths_one[1]])) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } break; case 4: /** * @example : tplData[].morebrand.link.sublink */ if (1 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand[].link.sublink */ } else { if (2 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand.link[].sublink */ } else { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key}][{$paths_two['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } break; case 5: /** * @example : tplData[].morebrand.link.sublink.subsublink */ if (1 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$paths_two[3]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$paths_two[3]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$paths_two[3]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}][{$paths_two['3']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand[].link.sublink.subsublink */ } else { if (2 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key][$paths_two[0]][$paths_two[1]][$paths_two[2]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand.link[].sublink.subsublink */ } else { if (3 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]][$paths_two[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]][$paths_two[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key][$paths_two[0]][$paths_two[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key}][{$paths_two['0']}][{$paths_two['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } /** * @example : tplData.morebrand.link.sublink[].subsublink */ } else { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]] as $key => $value) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]][$key][$paths_two[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]][$key][$paths_two[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$paths_one[3]][$key][$paths_two[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$paths_one['3']}][{$key}][{$paths_two['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } } break; } return; } if (3 === $cnt) { $paths_one = explode('.', $path_conf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $path_conf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $path_conf[2]); $paths_three_count = count($paths_three); $total_count = $paths_one_count + $paths_two_count + $paths_three_count; switch ($total_count) { /** * @example : tplData[].morebrand[].link */ case 3: foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } break; case 4: /** * @example : tplData.morebrand[].link[].sublink */ if (2 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData[].morebrand.link[].sublink */ } else { if (2 === $paths_two_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData[].morebrand[].link.sublink */ } else { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } } break; case 5: /** * @example : tplData.morebrand.link[].sublink[].subsublink */ if (3 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$paths_one[2]][$key0][$paths_two[0]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$paths_one['2']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData[].morebrand.link.sublink[].subsublink */ } else { if (3 === $paths_two_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$paths_two[2]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$paths_two['2']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData[].morebrand[].link.sublink.subsublink */ } else { if (3 === $paths_three_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$paths_three[2]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$paths_three[2]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$paths_three[2]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}][{$paths_three['2']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData.morebrand[].link.sublink[].subsublink */ } else { if (2 === $paths_one_count && 2 === $paths_two_count && 1 === $paths_three_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData.morebrand[].link[].sublink.subsublink */ } else { if (2 === $paths_one_count && 1 === $paths_two_count && 2 === $paths_three_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$paths_one['1']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } /** * @example : tplData[].morebrand.link[].sublink.subsublink */ } else { if (1 === $paths_one_count && 2 === $paths_two_count && 2 === $paths_three_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$paths_three[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$paths_three[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$paths_three[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } } } } } } break; } return; } if (4 === $cnt) { $paths_one = explode('.', $path_conf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $path_conf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $path_conf[2]); $paths_three_count = count($paths_three); $paths_four = explode('.', $path_conf[3]); $paths_four_count = count($paths_four); $total_count = $paths_one_count + $paths_two_count + $paths_three_count + $paths_four_count; switch ($total_count) { case 4: /** * @example : tplData[].morebrand[].link[].sublink */ foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$paths_three[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } break; case 5: /** * @example : tplData.morebrand[].link[].sublink[].subsublink */ if (2 === $paths_one_count) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$paths_one[1]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } /** * @example : tplData[].morebrand.link[].sublink[].subsublink */ } else { if (2 === $paths_two_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$key2][$paths_four[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$paths_two[1]][$key1][$paths_three[0]][$key2][$paths_four[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$paths_two['1']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } /** * @example : tplData[].morebrand[].link.sublink[].subsublink */ } else { if (2 === $paths_three_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]] as $key2 => $value2) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$key2][$paths_four[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$key2][$paths_four[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$paths_three[1]][$key2][$paths_four[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$paths_three['1']}][{$key2}][{$paths_four['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } /** * @example : tplData[].morebrand[].link[].sublink.subsublink */ } else { if (2 === $paths_four_count) { foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$paths_four[1]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$paths_four[1]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$paths_four[1]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}][{$paths_four['1']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } } } } } break; } return; } if (5 === $cnt) { $paths_one = explode('.', $path_conf[0]); $paths_one_count = count($paths_one); $paths_two = explode('.', $path_conf[1]); $paths_two_count = count($paths_two); $paths_three = explode('.', $path_conf[2]); $paths_three_count = count($paths_three); $paths_four = explode('.', $path_conf[3]); $paths_four_count = count($paths_four); $paths_five = explode('.', $path_conf[4]); $paths_five_count = count($paths_five); $total_count = $paths_one_count + $paths_two_count + $paths_three_count + $paths_four_count + $paths_five_count; switch ($total_count) { case 5: /** * @example : tplData[].morebrand[].link[].sublink[].subsublink */ foreach ($data['resultData'][$paths_one[0]] as $key0 => $value0) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]] as $key1 => $value1) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]] as $key2 => $value2) { foreach ($data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]] as $key3 => $value3) { $link = $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$key3][$paths_five[0]]; if (!empty($link)) { if (!is_array($link)) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$key3][$paths_five[0]] = prefixEncryptUrl($link); } else { foreach ($link as $k => $v) { $data['resultData'][$paths_one[0]][$key0][$paths_two[0]][$key1][$paths_three[0]][$key2][$paths_four[0]][$key3][$paths_five[0]][$k] = prefixEncryptUrl($v); } } } else { $logArr['url'] = "data['resultData'][{$paths_one['0']}][{$key0}][{$paths_two['0']}][{$key1}][{$paths_three['0']}][{$key2}][{$paths_four['0']}][{$key3}][{$paths_five['0']}]"; CLog::debug("data to be encrypt is empty", $status, $logArr, 1); } } } } } break; default: break; } return; } if ($cnt > 5) { $logArr['path_conf'] = implode("_", $path_conf); CLog::warning("data to be encrypt is more than 5 level", $status, $logArr, 1); } }