채택완료

파일에서 랜덤하게 한줄에 특정부분("|") 까지 읽어서 출력 하는 거 만들려고 합니다.

2018-06-03 (일) 20:54:37 1,947
Copy
$dayfile = file("naver_dat.txt");

 

   for($i=0 ; $i < sizeof($dayfile) ; $i++) {  // 파일 첫 행부터 끝행까지 루프
    $arrDay = explode("|", $dayfile[$i]);
    $randNum = rand(0,count($arrDay[0])-1);

   }
   echo $array[$randNum];

//랜덤 생성된 맹언 출력

naver_dat.txt 파일에서 랜덤하게 한줄에 특정부분("|") 까지 읽어서 출력 하는 거 만들려고 합니다.

Copy
여가시간을 가지려면 시간을 잘 써라. |0601|- 벤자민 프랭클린|2018

시간은 환상이다. 점심시간은 두 배로 그렇다.|0602|- 더글러스 애덤스|2018

성공한 사람이 될 수 있는데 왜 평범한 이에 머무르려 하는가?|0602|- 베르톨트 브레히트|2018

성공의 8할은 일단 출석하는 것이다.|0603|- 우디 알렌|2018

echo $array[$randNum];

결과물 첫번째 컬럼 설정시

성공한 사람이 될 수 있는데 왜 평범한 이에 머무르려 하는가?

또는 세번째 컬럼 랜덤 설정시 결과물

- 더글러스 애덤스

답변 1개 / 댓글 5개

채택된 답변
+20 포인트
Copy
$dayfile = file("naver_dat.txt");

for($i=0 ; $i < sizeof($dayfile) ; $i++) { // 파일 첫 행부터 끝행까지 루프

$arrDay = explode("|", $dayfile[$i]);

$array = $arrDay[원하는컬럼];

}

echo array_rand($array,원하는개수);

답변에 대한 댓글 5개

Warning: array_rand() expects parameter 1 to be array, null given in /home/hosting_users/hyundailife/www/sec.php on line 27





다시 새로고침(F5)





Warning: array_rand() expects parameter 1 to be array, string given in /home/hosting_users/hyundailife/www/sec.php on line 27





(null, string ) 2가지 번갈아 가면서 뜸니다.





뭔가 빠지거나 실수가 있는것 같는데 찾지 못하겠습니다.
작성하신 소스를 올려주세요..
[code]
if(date("s")%2 == 0) {
$dayfile = file("ko_1.txt");
}
else {
$dayfile = file("ksd_2.txt");
} // 현재 홀짝 자동 설정


for($i=0 ; $i < sizeof($dayfile); $i++) { // 파일 첫 행부터 끝행까지 루프
$arrDay = explode("|", $dayfile[$i]);

$arr_line = $arrDay[0]; // 원하는 컬럼
//print_r($arr_line);

}

echo array_rand($array,1); // 원하는 갯수

//랜덤 생성된 맹언 출력

[/code]
제가 실수가 있었네요..^^;;
[code]
for($i=0 ; $i < sizeof($dayfile); $i++) { // 파일 첫 행부터 끝행까지 루프
$arrDay = explode("|", $dayfile[$i]);

$array[] = $arrDay[0]; // 원하는 컬럼
//print_r($arr_line);
}

echo $array[array_rand($array,1)]; // 원하는 갯수
[/code]
늦게 채택되어서 죄송합니다.
마지막 변경된 코드로 적용하니 잘 작동합니다.
덕분에 잘 처리 되었습니다.

진심으로 감사드립니다.

답변을 작성하려면 로그인이 필요합니다.