최근에 “한마디”와 비슷한 한마디 출력 플랫폼을 개발하고 있는데, 데이터方面에서는 MySQL도 사용하지 않았고 SQLite도 사용하지 않았습니다. txt 형식의 텍스트로 데이터를 저장할 생각이기 때문입니다.
이유는 매우 간단합니다. txt는 읽고 쓰는 속도가 비교적 빠르고 메모리 공간도 너무 많이 차지하지 않으며, 이 기술의 난이도도 높지 않아 PHP로 텍스트 내용을 읽는 것만 다루면 됩니다. 아래에서 제 경험을 공유하겠습니다.
두 가지 방법
주로 다음 두 가지를 소개하겠습니다. 첫 번째는 인터넷을 참고한 것이고, 두 번째는 제가 직접 생각해 낸 것입니다. 아무래도 제 방법이 조금 더 나은 것 같습니다.
소스 코드 가져오기 방식
코드는 다음과 같습니다
<?php
$data = file_get_contents($filename);
//按行分割数据
$arr = explode("\n", $data);
//随机读取100行
$rand = array_rand($arr,1); print_r($rand);
?>
더 많은 설명은 하지 않겠습니다. PHP 기초를 아는 분이라면 한눈에 이해할 수 있을 것입니다.
배열에 저장하는 방식
기본적인 방법은 이렇습니다. 전체 줄 수를 구하고, 난수를 생성한 다음, 무작위 줄을 가져와 출력합니다. 코드는 다음과 같습니다
<?php
$f='1.txt'; //文件名
$a=file($f); //把文件的所有内容获取到数组里面
$n=count($a); //获得总行数
$rnd=rand(0,$n); //产生随机行号
$rnd_line=$a[$rnd]; //获得随机行
echo "$rnd / $n : $rnd_line"; //显示结果
?>
원리는 위의 주석에 모두 설명되어 있으니, 아마 모두 이해할 수 있을 것입니다. 어쨌든 저는 꽤 간단하다고 생각합니다.