다크 css 변환 정규식
컨텐츠 정보
- 조회 2,185
본문
나중에 정리할 시간이 없겠네요. 그냥 올립니다. 뭐라고 하지 마세요~ ㅠㅠ
css 디렉토리에 php 파일 만드셔서 실행하시면 됩니다.
default.css 를 default.dark.css 로 만들어줍니다.
<?php
// 이렇게 바꿔주는 함수가 있을것 같은데 못찾겠다 ㅠㅠ
function reverse_color($c) {
$colors = array(
'0'=>'f',
'1'=>'e',
'2'=>'d',
'3'=>'c',
'4'=>'b',
'5'=>'a',
'6'=>'9',
'7'=>'8',
'8'=>'7',
'9'=>'6',
'a'=>'5',
'b'=>'4',
'c'=>'3',
'd'=>'2',
'e'=>'1',
'f'=>'0');
return $colors[$c];
}
function convert_color($str) {
$colors = array(
'000000'=>'ffffff',
'111111'=>'eeeeee',
'222222'=>'dddddd',
'ffffff'=>'000000',
);
if ($colors[$str])
return $colors[$str];
else {
print("<div><span style='color:red; font:15px 돋움체;'>#$str</span> 치환 코드 없음</div>\n");
return $str;
}
}
function convert_rgba($str) {
$colors = array(
'rgba(64,112,253,1)'=>'rgba(255, 255, 255, 0.15)',
'rgba(255, 255, 255, 0.15)'=>'rgba(64,112,253,1)',
);
if ($colors[$str])
return $colors[$str];
else {
print("<div><span style='color:blue; font:15px 돋움체;'>$str</span> 치환 코드 없음</div>\n");
return $str;
}
}
function css_dark_converter($source_css_file) {
$target_css_file = preg_replace("|(.*)(\.css)$|", "$1.dark$2", $source_css_file);
if (file_exists($target_css_file)) unlink($target_css_file);
print("<h3><font color='blue'>{$source_css_file}</font> 파일을 <font color='red'>{$target_css_file}</font> 파일로 다크모드 생성중</h3>\n");
//die($target_css_file);
$source_file = fopen($source_css_file, 'r');
$target_file = fopen($target_css_file, 'w');
while (($line = fgets($source_file)) !== false) {
//if (preg_match("|color\s*:|i", $line) || preg_match("|\#[0-9a-f]{3,6}|i", $line)) {
if (preg_match("|\#[0-9a-f]{3,6}|i", $line)) {
$line = preg_replace_callback("|\#([0-9a-f]{3,6})|i", function ($color_matches) {
$color = $color_matches[1];
$dark_color = '';
for($i=0; $i<strlen($color); $i++) {
$dark_color .= reverse_color(strtolower($color[$i]));
}
return '#'.$dark_color;
}, $line);
}
else if (preg_match("|(rgba\(([^\)]+)\))|", $line)) {
$line = preg_replace_callback("|(rgba\(([^\)]+)\))|", function ($rgba_matches) {
$rgba = $rgba_matches[1];
return convert_rgba($rgba);
}, $line);
//print($line);
}
fwrite($target_file, $line);
}
fclose($source_file);
fclose($target_file);
print("<h3>{$target_css_file} 생성 완료</h3>\n");
}
css_dark_converter("header.css");
css_dark_converter("default.css");
css_dark_converter("mobile.css");
css_dark_converter("default_cmall.css");
css_dark_converter("mobile_cmall.css");
css_dark_converter("manual.css");
css_dark_converter("select.css");
?>
관련자료
-
링크
-
이전
-
다음
댓글 0개
등록된 댓글이 없습니다.
- 1(current)