찾다
백엔드 개발PHP 튜토리얼텍스트 파일 작업을 위한 PHP 클래스

  1. var $file
  2. var $index
  3. //파일 생성 및 입력
  4. 함수 null_write($new) {
  5. $f=fopen($this->file,"w")
  6. Flock($f,LOCK_EX)
  7. fputs($f,$new); 🎜> fclose($f);
  8. }
  9. // 파일 끝에 데이터 레코드를 추가합니다.
  10. function add_write($new) {
  11. $f=fopen($this->file ," a");
  12. 군중($f,LOCK_EX);
  13. fputs($f,$new)
  14. fclose($f)
  15. }
  16. // ) 데이터 행을 1차원 배열로 변환하려면 Return과 함께 사용하세요.
  17. function make_array($line) {
  18. $array =explore("\x0E",$line)
  19. return $array ;
  20. }
  21. //한 행의 데이터를 1차원 배열로 변환
  22. function Join_array($line) {
  23. $array = Join("\x0E",$line); array;
  24. }
  25. // 데이터 파일의 총 라인 수를 반환합니다.
  26. function getlines() {
  27. $f=file($this->file)
  28. return count; ($f);
  29. }
  30. // 다음 줄의 데이터 레코드를 반환합니다(백업)
  31. function next_line() {
  32. $this->index=$this->index ;
  33. return $this->get();
  34. }
  35. // 이전 줄의 데이터 레코드를 반환합니다(백업)
  36. function prev_line() {
  37. $this->index =$this->index--;
  38. return $this ->get()
  39. }
  40. // 현재 행의 데이터 레코드를 반환합니다.
  41. 함수 get () {
  42. $f=fopen($this->file,"r ")
  43. Flock($f,LOCK_SH)
  44. for($i=0;$iindex;$i ) {
  45. $rec=fgets($f, 1024)
  46. }
  47. $line=explode("\x0E",$rec); f);
  48. return $line;
  49. }
  50. // Return 현재 행의 데이터 레코드가 더 큽니다.
  51. function get_big_file() {
  52. $f=fopen($this-> 파일,"r");
  53. 군중($f,LOCK_SH)
  54. for($i=0;$iindex;$i ) {
  55. $rec=fgets ($f,1024*5);
  56. }
  57. $line=explode( "\x0E",$rec)
  58. fclose($f)
  59. return $line;
  60. // 데이터 파일 열기 --- 파일 내용을 1차원 배열로 반환
  61. function read_file() {
  62. if (file_exists($this->file)) {
  63. $ line =file($this->file);
  64. }
  65. return $line
  66. }
  67. // 데이터 파일 열기---파일 내용을 2차원 배열로 반환
  68. function openFile() {
  69. if (file_exists($this->file)) {
  70. $f = file($this->file)
  71. $lines = array()
  72. foreach ($f as $rawline) {
  73. $tmpline =explore("\x0E",$rawline); array_push($lines, $tmpline)
  74. }
  75. }
  76. return $lines;
  77. }
  78. // 배열을 전달하고 이를 한 줄의 데이터로 병합한 후 전체 파일을 다시 작성합니다.
  79. function overwrite($array){
  80. $newline = implode( "\x0E",$array);
  81. $f = fopen($this->file,"w")
  82. 떼($f,LOCK_EX)
  83. fputs($f,$newline) );
  84. fclose($f);
  85. }
  86. // 파일 끝에 데이터 레코드 한 줄 추가
  87. function add_line( $array,$check_n=1) {
  88. $s=implode("\x0E",$array);
  89. $f=fopen($this->file,"a")
  90. 떼($f,LOCK_EX); $f,$s);
  91. if ($check_n==1)
  92. fputs($f,"\n")
  93. fclose($ f)
  94. }
  95. // 파일 앞에 데이터 레코드 행을 삽입합니다.
  96. function insert_line($array) {
  97. $newfile = implode("\x0E",$array)
  98. $f = fopen($this- >file,"r");
  99. Flock($f,LOCK_SH);
  100. while ($line = fgets($f,1024)) {
  101. $newfile .= $line; }
  102. fclose($f);
  103. $f = fopen($this->file,"w")
  104. Flock($f,LOCK_EX); 새 파일);
  105. fclose($f)
  106. }
  107. // 모든 정규화된 데이터 레코드를 업데이트합니다. 각 행의 바이트 데이터가 큰 경우에 적합합니다.
  108. function update($column,$query_string,$update_array) {
  109. $update_string = implode("\ x0E ",$update_array);
  110. $newfile = "";
  111. $fc=file($this->file);
  112. $f=fopen($this->file,"r" ) ;
  113. 군중($f,LOCK_SH);
  114. for ($i=0;$i $list =explore("\x0E",$ fc [$i]);
  115. if ($list[$column] != $query_string) {
  116. $newfile = $newfile.chop($fc[$i])."\n"; } else {
  117. $newfile = $newfile.$update_string
  118. }
  119. }
  120. fclose($f)
  121. $f=fopen($this->file,"w " );
  122. Flock($f,LOCK_EX);
  123. fputs($f,$newfile);
  124. fclose($f);
  125. }
  126. // 조건에 맞는 모든 데이터 업데이트 레코드, 각 행의 바이트 데이터가 작은 경우에 적합
  127. function update2($column,$query_string,$update_array) {
  128. $newline = implode("\x0E",$update_array)
  129. $ newfile = "";
  130. $f = fopen($this->file,"r")
  131. Flock($f,LOCK_SH)
  132. while ($line = fgets($f, 1024 )) {
  133. $tmpLine =explore("\x0E",$line);
  134. if ($tmpLine[$column] == $query_string) {
  135. $newfile .= $newline
  136. } else {
  137. $newfile .= $line;
  138. }
  139. }
  140. fclose($f)
  141. $f = fopen($this->file,"w") ;
  142. Flock($f,LOCK_EX);
  143. fputs($f,$newfile);
  144. fclose($f);
  145. }
  146. // 해당되는 모든 데이터 레코드를 삭제합니다. 라인당 바이트 데이터가 큰 경우
  147. function delete($column,$query_string) {
  148. $newfile = ""
  149. $fc=file($this->file)
  150. $f=fopen($this->file,"r");
  151. Flock($f,LOCK_SH)
  152. for ($i=0;$i $list = 폭발("\x0E",$fc[$i])
  153. if ($list[$column] != $query_string) {
  154. $newfile = $newfile.chop ($fc[$i])."\n";
  155. }
  156. }
  157. fclose($f)
  158. $f=fopen($this->file,"w") ;
  159. Flock($f,LOCK_EX);
  160. fputs($f,$newfile);
  161. fclose($f);
  162. }
  163. // 적합 행당 바이트 데이터가 작은 상황
  164. function delete2($column,$query_string){
  165. $newfile = ""
  166. $f = fopen($this->file,"r ") ;
  167. Flock($f,LOCK_SH);
  168. while ($line = fgets($f,1024)) {
  169. $tmpLine =explore("\x0E",$line); ($tmpLine[$column] != $query_string) {
  170. $newfile .= $line
  171. }
  172. }
  173. fclose($f)
  174. $f = fopen( $this ->file,"w");
  175. Flock($f,$newfile)
  176. fclose($f); /파일에 있는 필드의 최대값 가져오기
  177. function get_max_value($column) {
  178. $tlines = file($this->file)
  179. for ($i=0;$ i $line=explode("\x0E",$tlines[$i])
  180. $get_value[]=$line[$column]; }
  181. $get_max_value = max($get_value);
  182. return $get_max_value;
  183. }
  184. // 데이터 파일의 필드에 $query_string이 포함되어 있는지 여부를 기반으로 쿼리하여 2차원으로 반환합니다. array 기준에 맞는 모든 데이터
  185. function select($column, $query_string) {
  186. $tline = $this->openfile()
  187. $lines = array()
  188. foreach ( $tline as $line) {
  189. if ($line[$column] == $query_string) {
  190. array_push($lines, $line)
  191. }
  192. }
  193. return $lines ;
  194. }
  195. // function select()와 동일하며, 속도가 약간 향상될 수 있습니다.
  196. function select2($column, $query_string) {
  197. if (file_exists($this->file)) {
  198. $tline = $this->read_file();
  199. foreach ($tline as $tmpLine) {
  200. $line = $this->make_array($tmpLine)
  201. if ( $line[$ 열] == $query_string) {
  202. $lines[]=$tmpLine;
  203. }
  204. }
  205. }
  206. return $lines; / 데이터 파일에 따라 특정 필드에 $query_string이 포함되어 있는지 쿼리하고, 첫 번째 정규화된 데이터를 1차원 배열로 반환합니다.
  207. function select_line($column, $query_string) {
  208. $tline = $this-> read_file() ;
  209. foreach ($tline as $tmpLine) {
  210. $line = $this->make_array($tmpLine)
  211. if ($line[$column] == $query_string)
  212. return $line;
  213. break;
  214. }
  215. }
  216. }
  217. // cx로 다음/이전 줄 선택(next_prev ==> 1/next, 2/prev)
  218. function select_next_prev_line($column, $query_string, $next_prev) {
  219. $tline = $this->read_file()
  220. $line_key_end = count($tline) -
  221. $line_key; = -1 ;
  222. foreach ($tline as $tmpLine) {
  223. $line_key
  224. $line = $this->make_array($tmpLine)
  225. if ($next_prev == 1) {
  226. // 다음?
  227. if ($line[$column] == $query_string) {
  228. if ($line_key == 0) {
  229. return 0
  230. } else {
  231. $ line_key_up = $line_key - 1;
  232. return $up_line;
  233. }
  234. } else {
  235. $up_line = $line
  236. }
  237. } elseif ($next_prev == 2) {
  238. // 이전?
  239. if ($line[$column] == $query_string) {
  240. if ($line_key == $line_key_end) {
  241. return 0; else {
  242. $line_key_down = $line_key 1;
  243. }
  244. }
  245. } else {
  246. 0
  247. }
  248. $down_line = $this ->make_array($tline[$line_key_down]);
  249. return $down_line; }
  250. ?>
  251. 코드 복사
텍스트 파일, PHP

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?Apr 24, 2025 am 12:16 AM

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?Apr 24, 2025 am 12:16 AM

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

세션 ID 란 무엇입니까?세션 ID 란 무엇입니까?Apr 24, 2025 am 12:13 AM

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?Apr 24, 2025 am 12:12 AM

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 ​​있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.

세션과 관련된 크로스 사이트 스크립팅 (XSS) 공격으로부터 어떻게 보호 할 수 있습니까?세션과 관련된 크로스 사이트 스크립팅 (XSS) 공격으로부터 어떻게 보호 할 수 있습니까?Apr 23, 2025 am 12:16 AM

세션 관련 XSS 공격으로부터 응용 프로그램을 보호하려면 다음 조치가 필요합니다. 1. 세션 쿠키를 보호하기 위해 Httponly 및 Secure 플래그를 설정하십시오. 2. 모든 사용자 입력에 대한 내보내기 코드. 3. 스크립트 소스를 제한하기 위해 컨텐츠 보안 정책 (CSP)을 구현하십시오. 이러한 정책을 통해 세션 관련 XSS 공격을 효과적으로 보호 할 수 있으며 사용자 데이터가 보장 될 수 있습니다.

PHP 세션 성능을 어떻게 최적화 할 수 있습니까?PHP 세션 성능을 어떻게 최적화 할 수 있습니까?Apr 23, 2025 am 12:13 AM

PHP 세션 성능을 최적화하는 방법 : 1. 지연 세션 시작, 2. 데이터베이스를 사용하여 세션을 저장, 3. 세션 데이터 압축, 4. 세션 수명주기 관리 및 5. 세션 공유 구현. 이러한 전략은 높은 동시성 환경에서 응용의 효율성을 크게 향상시킬 수 있습니다.

SESSION.GC_MAXLIFETIME 구성 설정은 무엇입니까?SESSION.GC_MAXLIFETIME 구성 설정은 무엇입니까?Apr 23, 2025 am 12:10 AM

THESESSION.GC_MAXLIFETIMESETTINGINSTTINGTINGSTINGTERMINESTERMINESTERSTINGSESSIONDATA, SETINSECONDS.1) IT'SCONFIGUDEDINPHP.INIORVIAINI_SET ()

PHP에서 세션 이름을 어떻게 구성합니까?PHP에서 세션 이름을 어떻게 구성합니까?Apr 23, 2025 am 12:08 AM

PHP에서는 Session_Name () 함수를 사용하여 세션 이름을 구성 할 수 있습니다. 특정 단계는 다음과 같습니다. 1. Session_Name () 함수를 사용하여 Session_Name ( "my_session")과 같은 세션 이름을 설정하십시오. 2. 세션 이름을 설정 한 후 세션을 시작하여 세션을 시작하십시오. 세션 이름을 구성하면 여러 응용 프로그램 간의 세션 데이터 충돌을 피하고 보안을 향상시킬 수 있지만 세션 이름의 독창성, 보안, 길이 및 설정 타이밍에주의를 기울일 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구