2003-11-17
162 HIT
|
function getDirList ($dirName) { $d = dir($dirName); $Data=array(); $count=0; while($entry = $d->read()) { if ($entry != "." && $entry != ".." && $entry ="mysql.sock" && $entry !="z" && $entry !=".font-unix") { if (is_dir($dirName."/".$entry)) { $this->getDirList($dirName."/".$entry); } else {///echo $dirName."/".$entry."<br>"; $filename=$dirName."/"."$entry"; $fp=fopen("$filename","r"); fseek($fp,$numpoint); $content=fread($fp,filesize("$filename")); $length = strlen($content); $findStart=strpos($content,"회원인덱스기준"); $content=substr($content,$findStart,-70); if($findStart ){ //echo"<b>$content</b><br>"; $Data[$count].=$content; $count++; } fclose($fp); } } } $d->close(); return $Data; } 회원인덱스기준을 맨앞에 일정한 문자를 넣고 이래그로 검색하면됩니다. 예 S_9889 S_8382 이런식으로요 mysql로 회원을 불러서요 그값이 $member=array(); $member[0]="S_1111"; $member[1]="S_2222"; $dirName="/tmp"; $data=getDirList($dirName); while( list($key,$val) = each($data)) { while( list($k ,$v )= each($member)){ if( emeg($member,$val)) { echo"$val";////////현재 접속한사람 } } } ////////////////////////////////////// $member는 물론 로그인시에 세션에 등록되어있어야 한다. 또 다른 방법.. 저같은경우는 phpfree 라는 세션을 생성하거든요 카운터 중복을 막으려구 세션 열어보시면 아시겠지만 phpfree로 세션을 생성하면 /tmp 폴더에 sess_25a466fe51c3fe02744c6c9782000fa1 이런 형식의 파일이 생성되고 이 파일을 노바디 권한으로 열어보면 phpfree|i:1; 이런식으로 저장데있거든요 이걸 바탕으로 간단한 소스를 짜보았습니다. 부하는 어떨지 모르겠지만 간단한 개인 홈페이지용으로 써도 좋을듯 하네요 아래는 리눅스용 소스입니다. ----------------------------------------------------------- <? $count=0; $dir=opendir("/tmp"); while($read=readdir($dir)){ if(eregi("^(sess_)",$read)){ // 아래 cat 앞의 ` 이것은 숫자 1 왼쪽 버튼입니다. if(ereg("^(phpfree)",`cat /tmp/$read`)){ $count++; } } } closedir($dir); echo $count; ?> ----------------------------------------------------------- 원리는 간단합니다. opendir()함수를 이용해서 /tmp 폴더를 오픈합니다. readdir()함수로 파일이나 디렉토리이름들 가져옵니다. ereg함수를 써서 sess_ 로 시작하는 파일이면 `cat 파일이름` 이렇게 합니다. ($a=`cat 파일이름`; 이것은 명령을 실행해서 $a변수에 결과를 넣으라는것입니다.) 파일을 열어서 만약 phpfree로 시작한다면 카운터 수를 증가시킵니다. 이렇게 하면 됩니다.^^ |

