웹마스터 팁

소스가 너무 쉬워서 주석은 빼겠습니다.~

기본적인 것들인데, 제가 남의 소스 분석하는데 필요해서 만들어봤습니다.

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>

제목 글쓴이 날짜
휴대폰 결재 활용 (최종) 한꼬마 2002.11.26
카드 결재 개요 (텔렉) [2] 한꼬마 2002.11.26
카드 결재시 사용되는 자바스크립트와 html [3] file 한꼬마 2002.11.28
제로카운터 접속자 수 조정, 최고 간편한 팁(5초 소요, DB보존) [4] 고광욱 2002.12.01
파일처리 - fseek [3] 위선OSE 2002.12.03
MYSQL CLASS 위선OSE 2002.12.03
PHP 각종 오류 정리 [15] TheMics 2002.12.04
왕초보용 개판 오분전 황당 쿠키(1) [4] 미친개 2002.12.09
왕초보용 개판 오분전 황당 쿠키(2) [6] 미친개 2002.12.09
왕초보용 개판 오분전 황당 쿠키(3) [2] 미친개 2002.12.09
왕초보용 개판 오분전 황당 쿠키(4) [2] 미친개 2002.12.09
if 문으로 xxx.php?db=src 이런식으로 해보자..(제1탄 기초를 확!) [14] inging-zb41 2002.12.12
[동주아빠] PHP 게시판 만들기 기초 (1) 준비 [8] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (2) [12] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (3) 변수와 배열 [6] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (4) 연산자 [10] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (5) 제어문(上) [9] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (5) 제어문(下) [10] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (6) require,include [5] 손병목 2002.12.25
[동주아빠] PHP 게시판 만들기 기초 (7) 사용자정의함수 [4] 손병목 2002.12.25