public function jscssmd5()
 {
     global $pdname;
     global $envData;
     $pdname = array('js' => "", 'css' => "");
     $env = I("session.env");
     $environment = C("environment");
     $envData = $environment[$env];
     // 记录环境对应文件
     // 拼接
     foreach ($envData as $key => $value) {
         $envData[$key]['js'] = C("this_d") . $value['site'] . $value['js'];
         $envData[$key]['css'] = C("this_d") . $value['site'] . $value['css'];
     }
     // $this->assign('list',$list);
     // 分析html
     function htmlFx()
     {
         $filename = ['js' => [], 'css' => []];
         $rs = array("css" => array("preg" => "/<link.+-->(.+)\\.css\\?v=.+/", "result" => array()), "js" => array("preg" => "/require\\(\\[[\\'\"](.+)[\\'\"]\\]\\)/", "result" => array()));
         $str = file_get_contents('D:/svncode/wap/trunk/webapp/m.feiniu.com/public/' . I("html"));
         foreach ($rs as $key => $value) {
             preg_match_all($value['preg'], $str, $value['result']);
             if (isset($value['result'][1])) {
                 foreach ($value['result'][1] as $key2 => $value2) {
                     $filename[$key][] = trim($value2);
                 }
             }
         }
         return $filename;
     }
     function fileRelate($value, $suffix)
     {
         global $pdname;
         global $envData;
         $Tname =& $pdname[$suffix];
         $Tname_val =& $Tname[$value];
         if ($Tname != "" && $Tname_val == "") {
             $file_go = $envData[0][$suffix] . "/" . $value . "." . $suffix;
             $file_end = $envData[1][$suffix] . "/" . $value . "." . $suffix;
             $Tname_val = "false";
             if (file_exists($file_go) && file_exists($file_end)) {
                 $Tname_val = md5_file($file_go) == md5_file($file_end) ? "true" : "false";
             }
             if ($suffix == "js") {
                 jsRelate($value, $suffix);
             }
         }
     }
     // 判断js的差异
     function jsRelate($filename, $suffix)
     {
         global $envData;
         $str = file_get_contents($envData[0]['js'] . "/" . $filename . ".js");
         preg_match("/require\\(\\[(.+)\\]/", $str, $rs);
         if (!isset($rs[1])) {
             preg_match("/define\\(.+\\[(.+)\\]/", $str, $rs);
         }
         if (isset($rs[1])) {
             $rs[1] = $filename . "," . $rs[1];
             $strarr = explode(",", preg_replace("/['\" ]/", "", $rs[1]));
             if ($strarr) {
                 foreach ($strarr as $key => $value) {
                     fileRelate($value, $suffix);
                 }
             }
         }
     }
     if (I()) {
         $filename = ['js' => [], 'css' => []];
         if (I("html")) {
             $filename = htmlFx();
         }
         if (count($filename['js'])) {
             foreach ($filename['js'] as $key => $value) {
                 fileRelate($value, "js");
             }
             asort($pdname["js"]);
         }
         if (count($filename['css'])) {
             foreach ($filename['css'] as $key => $value) {
                 fileRelate($value, 'css');
             }
             asort($pdname["css"]);
         }
     }
     echo json_encode($pdname);
 }
Exemple #2
0
    $dev_js = $this_d . $env[0]['site'] . $env[0]['js'] . "/" . $value . ".js";
    $test_js = $this_d . $env[1]['site'] . $env[1]['js'] . "/" . $value . ".js";
    // echo ((md5_file($dev_js) == md5_file($test_js)?"true ":"false" )."----------".$value."<br>");
    if (empty($pdjsname[$value])) {
        if (file_exists($dev_js) && file_exists($test_js)) {
            $pdjsname[$value] = md5_file($dev_js) == md5_file($test_js) ? "true" : "false";
        } else {
            $pdjsname[$value] = "false";
        }
        jsRelate($value);
    }
}
$pps = array('js' => "", 'css' => "");
if ($_GET) {
    if ($_GET["html"]) {
        htmlFx();
    }
    if (count($filename['js'])) {
        foreach ($filename['js'] as $key => $value) {
            jsMd5($value);
        }
        asort($pdjsname);
        $pps["js"] = $pdjsname;
    }
    if (count($filename['css'])) {
        foreach ($filename['css'] as $key => $value) {
            cssRelate($value);
        }
        asort($pdcssname);
        $pps["css"] = $pdcssname;
    }