웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
사용자정의 함수 뽑아오는 함수입니다...
2002.10.23 18:21
소스가 너무 쉬워서 주석은 빼겠습니다.~
기본적인 것들인데, 제가 남의 소스 분석하는데 필요해서 만들어봤습니다.
php프로그래밍을 하다보면 조금 규모가 크다면 사용자 정의함수를 많이 이용해서 하는데요,
나중에 그 소스를 보는 사람은 파일 여기저기에 흩어져 있는 사용자정의함수를 찾아내야 하는 번거로움이 있죠..
이 php파일을 아무데나 넣고 실행하시면 하위폴더의 모든 사용자정의 함수가 찾아집니다.
경로에 상대경로로 .. 라고 입력하면 상위 폴더까지 검색됩니다.
이 프로그램의 핵심은 함수의 재귀호출입니다...
그럼 편리하게 쓰세요~
아래는 소스코드
<?
//-----------------------------------------------이곳은 신경안쓰셔도 되요..get이나 post로 넘어온 값을 읽어들이기위해서
//===============================================정의한 부분이예요..
//------------------------------------------------아래에 "여기까지" 라고 나오는데 까지입니다.
//================================================제가 요즘 짜고 있는 프로그램 일부를 그냥 배껴온겁니다.^^
//<------------- 넘어온 값들을 변수에 배정
if($HTTP_POST_VARS && count($HTTP_POST_VARS)!=0){
foreach($HTTP_POST_VARS as $key => $value){
${$key}=$value;
$keyArray[]=$key;
$valArray[]=$value;
}
}
if($HTTP_GET_VARS && count($HTTP_GET_VARS)!=0){
foreach($HTTP_GET_VARS as $key => $value){
${$key}=$value;
$keyArray[]=$key;
$valArray[]=$value;
}
}
if($HTTP_SESSION_VARS && count($HTTP_SESSION_VARS)!=0){
foreach($HTTP_SESSION_VARS as $key => $value){
${$key}=$value;
}
}
if($HTTP_POST_FILES && count($HTTP_POST_FILES)!=0){
foreach($HTTP_POST_FILES as $key => $value){
${$key}=$value;
${$key."_name"}=${$key}[name];
${$key."_size"}=${$key}[size];
${$key."_type"}=${$key}[type];
${$key}=${$key}[tmp_name];
}
}
if(count($keyArray)>0){ //넘어온 변수가 있을 경우
foreach($keyArray as $num=>$key){
if($num==0){
$opt.="?";
}else{
$opt.="&";
}
$opt.="{$key}={$valArray[$num]}";
//넘어온 변수를 넘기기 위해서는 그냥 url뒤에 $opt를 붙이기만 하면된다.
}
}else{
$opt="";
}
//>================================================================여기까지~ -
?>
<?
//----------------------------------------------진짜 소스코드 시작~
function getDir($dir){
global $func,$type,$num;
$link=@openDir($dir);
while($gets=@readDir($link)){
if($gets=="." || $gets==".."){
continue;
}
if(count(explode(".",$gets))==1){
$dirs=$dir."/".$gets;
$num=getDir($dirs);
}else{
$dirss=$dir;
$filelink=@fopen($dir."/".$gets,"r");
$lineNum=0;
while($line=@fgets($filelink,255)){
$lineNum++;
if($type=="func") $getss=split("function ".$func,$line);
elseif($type=="val") $getss=split("$".$func."=",$line);
elseif($type=="char") $getss=split($func,$line);
if(count($getss)>1){
$num++;
echo($num."번째 검색된 사항: ".$dirss."/".$gets." : ".$lineNum."번째 줄
");
}
}
if($filelink) fclose($filelink);
}
}
if($link) closeDir($link);
return $num;
}
//들어오는 값으로 디렉토리명이 들어온다.
$num=0;
if(!$dir) $dir=".";
if($func){
$num=getDir($dir);
if($num==0) echo("검색된 사항이 없습니다.");
else echo($num."개의 항목이 검색되었습니다.");
}
//==============================================실제로 검색하는 부분은 여기까지입니다. 아래는 폼필드와 표입니다.
//----------------------------------------------단순한 html이지요..^^;
?>
<form action="<?$PHP_SELF?>">
<table border="1" cellspacing="0" width="542" bgcolor="#D5B284" bordercolordark="white" bordercolorlight="black">
<tr>
<td width="307" bgcolor="#A06E2C">디렉토리<INPUT TYPE=TEXT NAME=dir VALUE="<?=$dir?>">(생략가능)</td>
<td width="225" bgcolor="#A06E2C">찾을함수<input type=text name=func value="<?=$func?>">
</td>
</tr>
<tr>
<td width="307" bgcolor="#EAEAEA"><input type=radio name=type value="func" checked>함수
<input type=radio name=type value="val">변수정의장면
<input type=radio name=type value="char">문자열
</td>
<td width="225" align="center" bgcolor="#EAEAEA"><input type=submit value="찾기!!" style="font-family:Arial; font-weight:bold; font-size:10pt; color:black; background-color:rgb(234,234,234);"></td>
</tr>
<tr>
<td width="536" colspan="2" bgcolor="#D5B284">
</td>
</tr>
<tr>
<td width="536" colspan="2" bgcolor="#EAEAEA">
</td>
</tr>
</table>
</form>
기본적인 것들인데, 제가 남의 소스 분석하는데 필요해서 만들어봤습니다.
php프로그래밍을 하다보면 조금 규모가 크다면 사용자 정의함수를 많이 이용해서 하는데요,
나중에 그 소스를 보는 사람은 파일 여기저기에 흩어져 있는 사용자정의함수를 찾아내야 하는 번거로움이 있죠..
이 php파일을 아무데나 넣고 실행하시면 하위폴더의 모든 사용자정의 함수가 찾아집니다.
경로에 상대경로로 .. 라고 입력하면 상위 폴더까지 검색됩니다.
이 프로그램의 핵심은 함수의 재귀호출입니다...
그럼 편리하게 쓰세요~
아래는 소스코드
<?
//-----------------------------------------------이곳은 신경안쓰셔도 되요..get이나 post로 넘어온 값을 읽어들이기위해서
//===============================================정의한 부분이예요..
//------------------------------------------------아래에 "여기까지" 라고 나오는데 까지입니다.
//================================================제가 요즘 짜고 있는 프로그램 일부를 그냥 배껴온겁니다.^^
//<------------- 넘어온 값들을 변수에 배정
if($HTTP_POST_VARS && count($HTTP_POST_VARS)!=0){
foreach($HTTP_POST_VARS as $key => $value){
${$key}=$value;
$keyArray[]=$key;
$valArray[]=$value;
}
}
if($HTTP_GET_VARS && count($HTTP_GET_VARS)!=0){
foreach($HTTP_GET_VARS as $key => $value){
${$key}=$value;
$keyArray[]=$key;
$valArray[]=$value;
}
}
if($HTTP_SESSION_VARS && count($HTTP_SESSION_VARS)!=0){
foreach($HTTP_SESSION_VARS as $key => $value){
${$key}=$value;
}
}
if($HTTP_POST_FILES && count($HTTP_POST_FILES)!=0){
foreach($HTTP_POST_FILES as $key => $value){
${$key}=$value;
${$key."_name"}=${$key}[name];
${$key."_size"}=${$key}[size];
${$key."_type"}=${$key}[type];
${$key}=${$key}[tmp_name];
}
}
if(count($keyArray)>0){ //넘어온 변수가 있을 경우
foreach($keyArray as $num=>$key){
if($num==0){
$opt.="?";
}else{
$opt.="&";
}
$opt.="{$key}={$valArray[$num]}";
//넘어온 변수를 넘기기 위해서는 그냥 url뒤에 $opt를 붙이기만 하면된다.
}
}else{
$opt="";
}
//>================================================================여기까지~ -
?>
<?
//----------------------------------------------진짜 소스코드 시작~
function getDir($dir){
global $func,$type,$num;
$link=@openDir($dir);
while($gets=@readDir($link)){
if($gets=="." || $gets==".."){
continue;
}
if(count(explode(".",$gets))==1){
$dirs=$dir."/".$gets;
$num=getDir($dirs);
}else{
$dirss=$dir;
$filelink=@fopen($dir."/".$gets,"r");
$lineNum=0;
while($line=@fgets($filelink,255)){
$lineNum++;
if($type=="func") $getss=split("function ".$func,$line);
elseif($type=="val") $getss=split("$".$func."=",$line);
elseif($type=="char") $getss=split($func,$line);
if(count($getss)>1){
$num++;
echo($num."번째 검색된 사항: ".$dirss."/".$gets." : ".$lineNum."번째 줄
");
}
}
if($filelink) fclose($filelink);
}
}
if($link) closeDir($link);
return $num;
}
//들어오는 값으로 디렉토리명이 들어온다.
$num=0;
if(!$dir) $dir=".";
if($func){
$num=getDir($dir);
if($num==0) echo("검색된 사항이 없습니다.");
else echo($num."개의 항목이 검색되었습니다.");
}
//==============================================실제로 검색하는 부분은 여기까지입니다. 아래는 폼필드와 표입니다.
//----------------------------------------------단순한 html이지요..^^;
?>
<form action="<?$PHP_SELF?>">
<table border="1" cellspacing="0" width="542" bgcolor="#D5B284" bordercolordark="white" bordercolorlight="black">
<tr>
<td width="307" bgcolor="#A06E2C">디렉토리<INPUT TYPE=TEXT NAME=dir VALUE="<?=$dir?>">(생략가능)</td>
<td width="225" bgcolor="#A06E2C">찾을함수<input type=text name=func value="<?=$func?>">
</td>
</tr>
<tr>
<td width="307" bgcolor="#EAEAEA"><input type=radio name=type value="func" checked>함수
<input type=radio name=type value="val">변수정의장면
<input type=radio name=type value="char">문자열
</td>
<td width="225" align="center" bgcolor="#EAEAEA"><input type=submit value="찾기!!" style="font-family:Arial; font-weight:bold; font-size:10pt; color:black; background-color:rgb(234,234,234);"></td>
</tr>
<tr>
<td width="536" colspan="2" bgcolor="#D5B284">
도움말:
이 프로그램은 php소스분석작업등을 할 때 수없이 나오는 사용자정의
함수가 어디에서 정의되었는지를 찾아주는프로그램입니다.
사용예>
"함수"체크시 ->디렉토리에 가장 상위디렉토리(마지막에
"/" 뺌)적음
찾을함수에
함수명 적음(ex> dbConn)"("는 뺌.
"변수정의장면"체크시->변수가 정의된 곳, 즉,
$aaa=뭐시기..
라고
정의되는 장면을 포착해준다.
"문자열" 체크시 ->그냥 그 문자열이 어디에 있는지
찾아줌.
</td>
</tr>
<tr>
<td width="536" colspan="2" bgcolor="#EAEAEA">
여기에서 검색은 정규표현식을 사용하여 이루어지므로 []+^{}등과
같은 문자는 앞에 를 붙여야 합니다~^^
그런 문자들이 안나왔다면 그냥 쓰면 됩니다.
</td>
</tr>
</table>
</form>
댓글 4
제목 | 글쓴이 | 날짜 |
---|---|---|
다른 도메인간 iframe 크기 자동조절(cross domain iframe auto resize) [2] | 서기 | 2008.04.24 |
나만의 위지윅 웹에디터 만들기 - 글 쓰기에 앞서
[4]
![]() | 예뜨락 | 2008.05.05 |
나만의 위지윅 웹에디터 만들기 - 기본 준비1
[3]
![]() | 예뜨락 | 2008.05.05 |
나만의 위지윅 웹에디터 만들기 - 기본 준비2
[2]
![]() | 예뜨락 | 2008.05.11 |
자파스크립트로 GET으로 넘어온 파라미터 가져오기 [1] | 중딩 | 2008.05.26 |
첨부파일 확장자 체크 [정규식] | arimaya | 2008.06.23 |
항상 같은곳에 있는 광고창 만들기 | ITBANK.kr | 2008.10.01 |
지정된 시간동안 강제로 보여지는 언론사에서 많이 사용하는 광고창 | ITBANK.kr | 2008.10.01 |
전체크기로 새창 열기 [1] | ITBANK.kr | 2008.10.01 |
구글 번역기 API | 유비키리 | 2008.10.29 |
입력폼에 배경그림 넣기 [1] | 정낙훈(xynex) | 2008.12.23 |
웹서핑 동작 원리의 이해 [18] | zero | 2007.10.05 |
PHP에 대한 소개 [216] | zero | 2000.03.06 |
Database, MySQL 이 무엇인가~~~ ^^ [103] | zero | 2000.03.06 |
간단한 PHP 문법 [204] | zero | 2000.03.06 |
PHP에서의 파일입출력 문법 (간단히) [92] | zero | 2000.03.06 |
MYSQL Query의 간단한 사용법 [82] | zero | 2000.03.06 |
윈도즈에서의 Apahch 설치법 [88] | zero | 2000.03.06 |
윈도즈에서 PHP3와 MySQL 설치 [40] | zero | 2000.03.06 |
MySQL RPM으로 설치하자!! (리눅스) [5] | zero | 2000.06.04 |