<?php

if (!function_exists('glob_file'))
{
    /**
     * 获取文件列表
     */
    function glob_file($sPath, $aReturn = [])
    {
        if (!is_dir($sPath)) {
            return $aReturn;
        }
        $sPath = rtrim($sPath, '/');
        foreach((glob($sPath . '/*') ?: []) as $sDir) {
            is_dir($sDir) ? $aReturn = array_merge($aReturn, glob_file($sDir)) : $aReturn[] = $sDir;
        }
        return $aReturn;
    }
}

if (!function_exists('array_save'))
{
    /**
     * 保存数组
     */
    function array_save($aValue, $sFile, $sVar = false)
    {
        $sValue = var_export($aValue, true);
        $sValue = !$sVar
            ? sprintf('<?php return %s; ', $sValue)
            : sprintf('<?php %s = %s;', $sVar, $sValue);
        $flag = file_put_contents($sFile, $sValue);
        return $flag;
    }
}


$sPath = dirname(__DIR__);
$sSave = sprintf('%s/locale/frontendProject/language/en/field_scan.php', $sPath);
$aPath = [
    $sPath. '/homecn/action',
    $sPath. '/homecn/view',
    $sPath. '/homecn/static/js',
];
$ignoreFiles = [
];

$aValue = [];
$aPattern = ['/<lg>(.*)<\/lg>/iU', '/lg\([\'"]+(.*)[\'"]+\)/isU'];
foreach ($aPath as $sDir)
{
    $aFile = glob_file($sDir);
    foreach ($aFile as $sFile)
    {
        if(in_array($sFile,$ignoreFiles)){
            continue;
        }
        $sContent = file_get_contents($sFile);
        foreach ($aPattern as $sPattern)
        {
            preg_match_all($sPattern, $sContent,$aMatch);
            if ($aMatch)
            {
                foreach ($aMatch[1] as $sVal)
                {
                    if ((false !== strpos($sVal, '$')) || (false !== strpos($sVal, '+'))) {
                        continue;
                    }
					$sVal = trim($sVal);
                    if(!is_numeric($sVal)){
                        $aValue[$sVal] = str_replace(["'",'"'],"\'",$sVal);
                    }
                }
            }
        }
    }
}
ksort($aValue);
$flag = array_save($aValue, $sSave);

ob_clean();
header('Content-Type','application/json');
if(!$flag){
    $result['code'] = 0;
    $result['msg'] = '保存文件失败，请检查目录权限';
}else{
    $result['code'] = 0;
    $result['msg'] = '语言包扫描完成';
}

echo json_encode($result, JSON_UNESCAPED_UNICODE);
exit();
