2018년 5월 16일 수요일

[PHP예제] 109 파일에서 지정한 바이트 수만큼씩 데이터를 가져오기




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>파일에서 지정한 바이트 수만큼씩 데이터를 가져오기</title>
    <link href="style.css" rel="stylesheet">
</head>
<body>
<div>
<?php
// 파일명 설정
$fileName = './complex-664440_640.jpg';

// 파일이 있는지 확인
if( !file_exists($fileName) )
{
  die('파일이 존재하지 않음');
}

// 파일을 읽기 모드로 연다
$fp = fopen($fileName, 'rb');
if( !is_resource($fp) )
{
  die('파일을 열지 못함');
}

// 파일을 잠금(공유 잠금)
flock($fp, LOCK_SH);

// 데이터를 줄 번호를 붙여서 표시함
$num = 1;
$length = 20;
echo "파일의 선두에서{$length} 바이트씩 가져와서 10행을 표시함<br><pre>";
while( !feof($fp) && ($string = fread($fp, $length)) !== false )
{
  echo $num++ . ' : ';
  echo ftell($fp) . ' : '; // 파일 포인터의 현재 위치
  // 바이터리 데이터를 16진수 표기로 변환하여 표시
  echo bin2hex($string) . "\r\n";

  if( $num > 10 )
  {
    break;
  }
}

// 파일의 잠금을 해제
fflush($fp);
flock($fp, LOCK_UN);

// 파일을 닫음
fclose($fp);
echo "</pre>";
?>
</div>
</body>
</html>



댓글 없음:

댓글 쓰기