HTML 하드코더
작성자 : 김영철
등록날짜 : 2009.01.14 22:12
대부분의 웹프로그래머들이 그렇듯이...
디자이너에게서 받은 나모나 드림위버의 결과물을 보고 있노라면...
한숨부터 나오실 겁니다...
문제 되는 부분은 다음과 같은 경우겠죠...
...<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과 같은 태그를 대문자로 변환 할 수 있습니다.
^^필요하신 분들도 계실듯....
<?
/*
HTML HARD CODER
by. navyism (http://navyism.com)
2003.7.11
*/
$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);
?>
디자이너에게서 받은 나모나 드림위버의 결과물을 보고 있노라면...
한숨부터 나오실 겁니다...
문제 되는 부분은 다음과 같은 경우겠죠...
...<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과 같은 태그를 대문자로 변환 할 수 있습니다.
^^필요하신 분들도 계실듯....
<?
/*
HTML HARD CODER
by. navyism (http://navyism.com)
2003.7.11
*/
$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);
?>
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|