티스토리 뷰
text file로 부터 데이터를 읽어 웹브라우저 화면에 출력한다
/var/www/data/dataFile.txt에 다음과 같은 데이터가 저장되어 있다
username1 1234
username2 4321
username3 abcd
1)파일로 부터 데이터를 읽기 위해서 fopen이라는 함수를 이용해 읽기 권한으로 파일을 열어야 한다
$dataFile = "/var/www/data/dataFile.txt";
$fh = fopen($dataFile, 'r');
2)dataFile.txt에서 5byte만 읽기
<?
$dataFile = "/var/www/data/dataFile.txt";
$fh = fopen($dataFile, 'r');
$theData = fread($fh, 5);
fclose($fh);
echo $theData;
?>
결과 :
usern
3)filesize함수로 전체 파일 사이즈를 알아내고 전체 데이터를 $theData 변수에 저장(단위 byte)
<?
$dataFile = "dataFile.txt";
$fh = fopen($dataFile, 'r');
$theData = fread($fh, filesize($dataFile));
fclose($fh);
echo $theData;
?>
결과 :
username1 1234 username2 4321 username3 abcd
4)라인 한 줄을 배열에 저장해서 출력
<?
$dataFile = "dataFile.txt";
$fh = fopen($dataFile, 'r');
$theData = fread($fh, filesize($dataFile));
$dataArray = preg_split("/[\r\n\t]/", $theData);
print_r($dataArray);
echo "<br>";
var_dump($dataArray);
?>
결과 :
Array ( [0] => username1 1234 [1] => username2 4321 [2] => username3 abcd )
array(4) { [0]=> string(14) "username1 1234" [1]=> string(14) "username2 4321" [2]=> string(14) "username3 abcd" [3]=> string(0) "" }
5)한 줄씩 입력받고 출력
<?
$dataFile="dataFile.txt";
$fh = fopen($dataFile, 'r');
while($line=fgets($fh))
{
print $line."<br>";
}
fclose($fp);
?>
결과 :
username1 1234
username2 4321
username3 abcd
6)explode함수로 데이터를 구분해서 배열에 저장 후 출력
<?
$dataFile = "dataFile.txt";
$fh = fopen ($dataFile, "r");
$contents = fread ($fh, filesize($dataFile));
fclose ($fh);
$delimiter = " ";
$splitcontents = explode($delimiter, $contents);
$counter = "";
echo $contents;
?>
<br>
<?
foreach ( $splitcontents as $data)
{
$counter = $counter+1;
echo "<b>Split $counter: </b> $data<br>";
}
?>
결과 :
username1 1234 username2 4321 username3 abcd
Split 1: username1
Split 2: 1234 username2
Split 3: 4321 username3
Split 4: abcd
7)
$dataFile = "dataFile.txt";
$fh = fopen ($dataFile, "r");
$contents = fread ($fh, filesize($dataFile));
fclose ($fh);
$lines = preg_split("/\n|\r\n/", $contents);
foreach ($lines as $linenum => $linedata) {
print "<br><b>Line $linenum</b><br>";
$columndata = preg_split("/ /", $linedata);
print_r($columndata);
}
결과 :
Line 0
Array ( [0] => username1 [1] => 1234 )
Line 1
Array ( [0] => username2 [1] => 4321 )
Line 2
Array ( [0] => username3 [1] => abcd )
#$columndata = preg_split("//", $linedata); 이렇게 하면 문자 하나하나를('u','s','e','r'...) 배열에 저장할 수 있다
8) space tab newline을 구분자로 할 때 각 문자열을 배열에 저장
<?
$array = preg_split ("/\s+/", "Here are to many spaces in between \n hahaah babo");
print_r($array);
?>
결과 :
Array ( [0] => Here [1] => are [2] => to [3] => many [4] => spaces [5] => in [6] => between [7] => hahaah [8] => babo )
[출처] php에서 텍스트 파일 데이터 읽고 브라우저에 출력|작성자 동네바보