企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
``` /** * 对亚马逊sku进行加密,升级版。主要是代码优化,扩展函数 * 规则:如果存在点号,点号替换成$charReplaceDot;点号后不处理;点号前的部分每个字符间加入一个加密因子$randCharLen * 如果不存在点号,则每个字符间加入一个加密因子$randCharLen * * @param [type] $sku 目标sku字符串 * @param array $charPool 加密因子池 * @param integer $randCharLen 单个加密因子长度 * @param string $charReplaceDot 替换sku中的第一个点号 * @return void */ function getAmazonEncryptSkuV2($sku, $charPool = [], $randCharLen=2, $charReplaceDot='D'){ $sku = trim($sku);//插入随机字符的长度 if(!is_array($charPool) || empty($charPool)){ $charPool = array('a','b','c','d','e','f','g','h', //'i', 'j','k','l','m','n', //'o', 'p','q','r','s','t','u','v','w','x','y','z' ); } # 判断sku是否有'.'; if(strpos($sku, '.')){ $front_sku = strstr($sku,'.',true); //截取sku'.' 前的; $back_sku = ltrim($sku,$front_sku.'.');//截取sku'.'后的; }else{ $front_sku = $sku; } $len =strlen($front_sku); $skuLastOne = substr($front_sku,-1);//截取sku最后一位数 # 对sku第一个点号前的部分或者整个sku进行加密因子填充 $encryptSku = '';//加密后的sku for($i=0; $i<$len-1; $i++){ $randomChar = implode('', array_rand(array_flip($charPool), $randCharLen)); $encryptSku .= $front_sku[$i].$randomChar; } $encryptSku .= $skuLastOne; # 点号替换并保持点号后的部分不变 if($back_sku){ $encryptSku .= $charReplaceDot.$back_sku; } return $encryptSku; } ```