[php] HTML 하드코더
로빈아빠
본문
HTML 하드코더
대부분의 웹프로그래머들이 그렇듯이...
디자이너에게서 받은 나모나 드림위버의 결과물을 보고 있노라면...
한숨부터 나오실 겁니다...
문제 되는 부분은 다음과 같은 경우겠죠...
...<tr><td><table ...
요런건 다음에 나올 테이블 태그가 뒤에 붙어 있어서 웬만해선 찾기가 쉽지 않습니다.
두번째 경우는 다음과 같은 경우 입니다.
<tr> <td> <table <tr> ...
물론 이런 유형의 코드를 좋아 하시는 분들도 계실지 모르지만...
제 경우에는 이런 코드를 모조리 아래와 같이 바꾸어 작업에 들어 갑니다.
<table> <tr> <td> <table> <tr> <td> <table> <tr> <td></td> </tr> </table> </td> </tr> </td> </tr> </table>
아래 소스는 위와 같이 바꾸어 주는 소스 입니다.
그 외의 작업으로는 폼태그의 위치와 입력폼의 위치를 주석으로 표시해 주고...
table이나 form과 같은 태그를 대문자로 변환 할 수 있습니다.
첨부파일을 exe 파일(pre-HardCoder)로 하드코팅하는 소스입니다.
대부분의 웹프로그래머들이 그렇듯이...
디자이너에게서 받은 나모나 드림위버의 결과물을 보고 있노라면...
한숨부터 나오실 겁니다...
문제 되는 부분은 다음과 같은 경우겠죠...
...<tr><td><table ...
요런건 다음에 나올 테이블 태그가 뒤에 붙어 있어서 웬만해선 찾기가 쉽지 않습니다.
두번째 경우는 다음과 같은 경우 입니다.
<tr> <td> <table <tr> ...
물론 이런 유형의 코드를 좋아 하시는 분들도 계실지 모르지만...
제 경우에는 이런 코드를 모조리 아래와 같이 바꾸어 작업에 들어 갑니다.
<table> <tr> <td> <table> <tr> <td> <table> <tr> <td></td> </tr> </table> </td> </tr> </td> </tr> </table>
아래 소스는 위와 같이 바꾸어 주는 소스 입니다.
그 외의 작업으로는 폼태그의 위치와 입력폼의 위치를 주석으로 표시해 주고...
table이나 form과 같은 태그를 대문자로 변환 할 수 있습니다.
/* 제작자이름 : navyism 제작자메일 : navyism@chol.com 관련사이트 : http://navyism.com HTML HARD CODER */ $dir = "test"; // 원본 디렉토리 $file = "test.htm"; // 원본 파일이름 $dir2 = "test"; // 결과 디렉토리 $file2 = "test.txt"; // 결과 파일이름 $newln = "\r\n"; // 줄바꿈 문자 $tab = "\t"; // 탭구분 문자 $replace = false; // 대문자로 변환 (true | false) $data=file("$dir/$file"); for($i=0;$i<sizeof($data);$i++) { $data2[]=trim($data[$i]); } $data=explode($newln,implode($newln,$data2)); unset($data2); for($i=0;$i<sizeof($data);$i++) { $data2[]=eregi_replace("(<table|</table>|<form|</form>)",$newln."\\1",$data[$i]); } $data=explode($newln,implode($newln,$data2)); unset($data2); for($i=0;$i<sizeof($data);$i++) { $data2[]=eregi_replace("(</table>|</form>)","\\1".$newln,$data[$i]); } $data=explode($newln,implode($newln,$data2)); unset($data2); for($i=0;$i<sizeof($data);$i++) { if(!trim($data[$i])) { continue; } $data2[]=$data[$i]; } $data=explode($newln,implode($newln,$data2)); unset($data2); for($i=0;$i<sizeof($data);$i++) { if(!$replace) { $data[$i]=eregi_replace("<input ","<!--입력폼--><input ",$data[$i]); $data[$i]=eregi_replace("<form ","<!--폼의 시작-->$newln<form ",$data[$i]); $data[$i]=eregi_replace("</form","<!--폼의 끝-->$newln</form",$data[$i]); } else { $data[$i]=eregi_replace("<input ","<!--입력폼--><INPUT ",$data[$i]); $data[$i]=eregi_replace("<form ","<!--폼의 시작-->$newln<FORM ",$data[$i]); $data[$i]=eregi_replace("</form","<!--폼의 끝-->$newln</FORM",$data[$i]); $data[$i]=eregi_replace("<table","<TABLE",$data[$i]); $data[$i]=eregi_replace("</table","</TABLE",$data[$i]); $data[$i]=eregi_replace("<tr","<TR",$data[$i]); $data[$i]=eregi_replace("</tr","</TR",$data[$i]); $data[$i]=eregi_replace("<td","<TD",$data[$i]); $data[$i]=eregi_replace("</td","</TD",$data[$i]); } } $data=explode($newln,implode($newln,$data)); $tab_count=0; for($i=0;$i<sizeof($data);$i++) { if(eregi("<table",$data[$i])) { $tab_count++; } unset($tab_print); for($j=1;$j<$tab_count;$j++) { $tab_print.=$tab; } if(eregi("</table>",$data[$i])) { $tab_count--; } $data2[]=$tab_print.$data[$i]; } $fp=fopen("$dir2/$file2",w); fwrite($fp,implode($newln,$data2)); fclose($fp);
첨부파일을 exe 파일(pre-HardCoder)로 하드코팅하는 소스입니다.
관련링크
댓글목록
등록된 댓글이 없습니다.