php 입문 | 텍스트 파일 이용 | 인터넷 상에 파일도 읽을 수 있다(?)


지금까지 PHP 파일 액세스 함수에 대해 간략히 정리해 왔지만, 마지막에 중대한 비밀(?)을 알려 주겠다.

사실 PHP 파일 관련 함수는 로컬 볼륨에 저장되어 있는 파일뿐 아니라, 인터넷에 있는 파일도 동일하게 액세스할 수 있다!

단, 파일의 쓰기 변경은 할 수 없다. 기본적으로 데이터를 읽을 수 있을 뿐이다. 그래도 여전히 “Web 사이트의 데이터를 자유롭게 읽을 수 있다"라면, 이것은 대단하다고 생각되지 않는가?

사용법은 간단하다. 각각의 함수로 파일을 지정할 인수에 파일 이름이나 파일 경로 대신에 URL을 적으면 된다. 예를 들어,

$lines = file("http://www.google.com/");

이런 식으로 하면 Google의 톱 페이지의 HTML 코드가 모두를 가져올 수 있다.

아래에 실제 간단한 사용 예를 보도록 하자.

<?php
    if ($_POST != null){
        $url = $_POST['text1'];
        $lines = file($url);
        $result = implode($lines);
    }
?>
<!DOCTYPE html>
<html lang="ko">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
        <title>sample page</title>
    </head>
    <body>
        <h1>Hello PHP!</h1>
        <form method="post" action="./index.php">
            <input type="text" name="text1" size="40"
                value="<?php echo htmlspecialchars($url); ?>"><br>
            <input type="submit">
        </form>
        <hr>
        <?php echo htmlspecialchars($result); ?>
    </body>
</html>

입력 필드에 URL을 써서 송신하면, 그 페이지의 내용을 다운로드하고 아래로 쓰기를 한다. 실제로 해보자. 간단히 다른 사이트의 데이터를 꺼낼 올 수 있다는 것을 알 수 있다.

어쨌든 네트워크에 있는 파일을 로드할 때에는 로드에 실패하거나 매우 시간이 걸리거나 하는 것도 많기 때문에, 그러한 경우의 대응도 생각해 두지 않으면 안된다. 아무튼 이렇게 쉽게 Web 데이터를 꺼낼 얻어 올 수 있다면 여러가지에 응용할 수 있을 것이 있지 않을까 싶다.