테스트 사이트 - 개발 중인 베타 버전입니다

리자님께 문득 궁금해서 하나 남깁니다.

· 4년 전 · 1720 · 4

리자님이, 일전에 다크모드 작업하실때

정규표현식으로 무언가 하셧다고 하는데, 그게 몬지 알려주실수 있을까요?

 

css 칼라코드 일괄 처리.. 이었던걸로 어렴풋이 기억합니다만.. ^^

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

코드가 너무 조잡해서요.
지금은 너무 바빠서~ 며칠내로 시간될때 정리해서 올려 보겠습니다.
@리자 바쁘신데 답변주셔서 감사합니다!!
천천히 올려주십시오.
나중에 정리할 시간이 없겠네요. 그냥 올립니다. 뭐라고 하지 마세요~ ㅠㅠ

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");
?>
오....... 감사합니다!!!!... ^^

게시글 목록

번호 제목
98
97
91
87
80
76
75
72
71
70
69
68
62
61
60
57
55
54
49
40
36
33
32
31
29
21
11
8
4
1