관리 메뉴

nkdk의 세상

php 웹에서 조사한 결과들을 저장하는 방법 @readfile 등... 본문

My Programing/PHP

php 웹에서 조사한 결과들을 저장하는 방법 @readfile 등...

nkdk 2009. 7. 24. 13:26

이번에 할려고 하는게 뭐냐하면..
@readfile을 이용해서 파일을 읽어오는 것
fread로 읽어 오는 것 fwrite로 쓰는 법, fopen도 있겠다.
재미있는 것이 텍스트에 관련된 파일만 가져오는 것이 아니라 그림 같은 것도 바로 가져올 수 있기 때문에 여러가지 응용이 가능하다는 것이다.

일단은 쭉 나가본다.

파일이나 웹에서 값을 가져올때 편하게 쓰는 방법

read_fileOrWeb.php
<?php
    $filename = 'sendPage_session.html';
    @readfile($filename) or exit("$filename is nothing!");   
    $filename = 'http://www.google.co.jp/';
    @readfile($filename) or exit("$filename is nothing!");   
?>

자 다음으로는 file을 읽고 쓰고 하는 방법과 그에 관련한 함수들을 같이 보도록 한다.
write_readFile.php
<?php
    // write 'test.txt'
    $filename = 'test.txt';
    $contents = "input new file series";
    // Write Mode
    $fhandle = fopen($filename, 'w');
    flock($fhandle, LOCK_EX);
    $write_cnt = fwrite($fhandle, $contents);
    flock($fhandle, LOCK_UN);

    echo "write complete<br>";
   
    $cnt = filesize($filename);
    echo "writed file size = {$cnt}<br>";
   
    // read Mode Change
    $fhandle = fopen($filename, 'r');
    $rbuf = fread($fhandle, $cnt);
    echo "writed file buf = $rbuf<br>";
    fclose($fhandle);
   
    // file mode
    // r, w, a, x, b, r+, w+, a+, x+ 자세한 것은 인터넷 참조
   
    // 전체적인 흐름
    // 읽는 것의 경우 fopen -> fread -> fclose
    // 쓰는 것의 경우 fopen -> flock -> fwrite -> flock -> fclose
    // fclose 같은 경우는 꼭 해줘야 겠다. 닫아 주지 않으면 계속 열려 있는상태가 유지되어 있을테니..
   
    // 파일 존재 여부 화일
    $fileYorNo = file_exists($filename);
    if($fileYorNo) {
        echo "file is true<br>";
    } else {
        echo "file is false<br>";
    }
   
    // 현재 패스 알아내기
    $fpath = getcwd();
    echo "folder path is {$fpath}<br>";
   
    // 확장자 알아내는 함수 생성
    function Get_Extension_From_File ($Filename) {
        // .을 중심으로 분리한다.
        $Extension = explode ('.', $Filename);
       
        // 배열이 0부터 시작하기 때문에 1을 빼준다.
        $Extension_i = (count($Extension) - 1);
       
        // 확장자 리턴
        return $Extension[$Extension_i];
    }
   
    // 폴더 정보 알아내기
    echo " 'C:\project\php\testphp' folder info=<br>----------------------------------<br>";
    $path = ".";
    $dh = opendir($path);
    while($filename = readdir($dh)) {
        if(filetype($filename) == 'file') {
            if('php' == Get_Extension_From_File($filename) || 'html' == Get_Extension_From_File($filename)) {
                echo "<a href='$filename'>$filename</a><br>";   
            }           
        }
    }
    echo "----------------------------------";
    // 폴더 읽는 것에 전체적인 흐름
    // opendir -> readdir -> closedir;
    // 이것 역시 꼭 closedir을 해줘야 한다.
    closedir($dh);

?>

이 정도 봐두면 될 듯하다. ^_^

그래프 그리는 법에 대한 간단한 소개를 하도록 하겠다. 정말 간단한 부분만 하겠다. 자세한 부분에 대해서는 인터넷 참조..