<?php
$imgFiles = "img_urls2.txt"; //$imgFiles2 = "img_urls2.txt";
$rsFile = "index.html";
$path = "images/rank/"; //"css/"; //"images/";

/*$file = fopen($imgFiles, 'r');
$strContent = "";
while (!feof($file)) {
    $url = trim(fgets($file));
    if ($url == "" || $url == null) continue;
    try {
        $fileName = basename($url);
        if (strpos($fileName, "?") !== false) {
            $fileNameList = explode("?", $fileName);
            $fileName = isset($fileNameList[0]) ? $fileNameList[0] : $fileName;
        }
        if (file_exists($path . $fileName)) continue;

        $imgContent = file_get_contents($url);
        file_put_contents($path . $fileName, $imgContent);

        //$indexContent = file_get_contents($rsFile);
        //$indexContent = str_replace($url, $path . $fileName, $indexContent);
        //file_put_contents($rsFile, $indexContent);

        echo "[Done] " . $url . "\r\n";
    } catch (Exception $exception) {
        echo $exception->getMessage() . "\r\n";
    }
}*/
/*file_put_contents($imgFiles2, $strContent);*/

/*css*/
function getImageUrls($input_string) {
    $matches = array();
    preg_match_all('/url\((.+?)\)/i', $input_string, $matches);
    return $matches[1];
}


$imgPath = "images/";
$fileList = glob('css/*.css');
$errorFiles = [];

foreach($fileList as $cssFile){
    echo "Detecting file: " . $cssFile . "\r\n";
    $cssContent = file_get_contents($cssFile);
    $rs = getImageUrls($cssContent);
    $result = [];

    foreach ($rs as $url) {
        $url = trim($url);
        $url = str_replace('"', "", $url);
        $url = str_replace("'", "", $url);
        $root_url = $url;

        if (strpos($url, "?") !== false) {
            $url = explode("?", $url);
            $url = $url[0];
        }

        if (strpos($url, "data:image") !== false) continue;
        if (strpos($url, "data:application") !== false) continue;
        if (strpos($url, "http://") === false && strpos($url, "https://") === false) {
            $errorFiles[] = $url;
            continue;
        }

        $baseName = basename($url);
        if (strpos($baseName, "?") !== false) {
            $baseName = explode("?", $baseName);
            $baseName = $baseName[0];
        }
        $result[] = ['root_url' => $root_url, 'file_url' => $url, 'new_url' => '../images/' . $baseName];
    }

    foreach ($result as $item) {
        $fileName = basename($item['new_url']);
        if (strpos($item['file_url'], "/webfonts/") !== false) {
            $imgContent = file_get_contents($item['file_url']);
            file_put_contents("fonts/" . $fileName, $imgContent);
            $cssContent = str_replace($item['root_url'], "../fonts/" . $fileName, $cssContent);
        } else {
            if (!file_exists($imgPath . $fileName)) {
                $imgContent = file_get_contents($item['file_url']);
                file_put_contents($imgPath . $fileName, $imgContent);
                file_put_contents($fileName, $imgContent);
            }
            $cssContent = str_replace($item['root_url'], $item['new_url'], $cssContent);
        }
        echo "[ok] " . $item['file_url'] . "\r\n";
    }
    file_put_contents($cssFile, $cssContent);
    echo "-----------------------------------------------------\r\n";
}

if (count($errorFiles) > 0) {
    echo "-----------------------Error-------------------------\r\n";
    foreach ($errorFiles as $err) {
        echo "[error] " . $err . "\r\n";
    }
    echo "-----------------------------------------------------\r\n";
}

echo "All Done.\r\n";









