홈피공장장

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

· 4년 전 · 1804 · 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");
?>
오....... 감사합니다!!!!... ^^
댓글을 작성하시려면 로그인이 필요합니다.

정규표현식

+
제목 글쓴이 날짜 조회
4년 전 조회 1,446
4년 전 조회 1,334
4년 전 조회 1,646
4년 전 조회 1,805
4년 전 조회 1,075
5년 전 조회 1,948
5년 전 조회 1,271
5년 전 조회 1,389
5년 전 조회 1,329
5년 전 조회 1,519
5년 전 조회 1,235
5년 전 조회 1,212
5년 전 조회 1,096
5년 전 조회 1,625
5년 전 조회 1,097
5년 전 조회 1,474
5년 전 조회 1,589
5년 전 조회 1,253
5년 전 조회 1,458
5년 전 조회 1,447
5년 전 조회 1,615
5년 전 조회 1,425
5년 전 조회 1,539
5년 전 조회 1,163
5년 전 조회 1,283
4년 전 조회 1,563
4년 전 조회 1,493
4년 전 조회 1,501
4년 전 조회 1,239
4년 전 조회 1,427
🐛 버그신고