2012-12-24 5 views
0

나는 수업 중에 일부 학생들을두고 있으며 학생들이 간단한 점을 얻는 프로젝트를 진행하고 있습니다. 랩톱의 텍스트 파일에 포인트를 수동으로 녹음하고 학교 서버로 이동하여 학생들이 점수를 볼 수 있도록합니다.기본 PHP 스코어 보드를 만들려면 어떻게해야합니까?

텍스트 파일은 다음과 같다 : 등등

David:1 
John:3 
Susan:9 
Ricky:12 
Liam:3 

합니다. 텍스트 파일의 각 행은 다음과 같습니다. 초보자인데도 PHP에별로 좋지 않아서 배열로 읽어 들일 필요가 있다는 것을 알았지 만 학생들로부터 점수를 떼어 내서 어떻게 점수를 매길 지 잘 모르겠습니다. 맨 위에 있으므로 웹 페이지에 표시 할 수 있습니다. 나는 이미 큰 텍스트 파일을 가지고 있으므로 실제로 포맷 할 수는 없다. 어떻게 이들을 분리하여 표시하거나 어레이에 넣을 수 있습니까? 그러면 간단한 HTML 페이지에 표시 할 수 있습니까?

PHP 5.3.13을 사용하고 있다고 생각합니다. 도움을 주셔서 감사합니다. 일종의없이

답변

3

일반적으로 항상 인기있는 "what have you tried"질문을합니다. 이 내용은 학생들과 함께 작업하고 있으므로, 몇 가지 조언을 드리겠습니다.

$final_array = array(); 
foreach ($row_array as $row) { 
    $temp_array = explode(':', $row); 
    $final_array[$temp_array[0]] = (int)$temp_array[1]; 
} 
이 같은 최종 배열로 결과를두고,

$row_array = file('/path/to/file.txt'); 

그런 다음 당신이 그 배열을 반복 할 수 있으며 :에 각 행의 데이터를 분할 : 먼저이 같은 배열로 파일을 읽을 수 있습니다

이제는 학생 이름이 키로 연결된 배열로 $final_array이되었습니다. 이제 인덱스 연관성을 유지하면서 배열의 값을 기준으로 역순으로 (내림차순으로) 정렬해야합니다.

arsort($final_array, SORT_NUMERIC); 

님의 다음 배열과 출력을 통해 루프는 내가 학생 이름에서 점수를 분리해서하는 부분을 분해하는 기능을 이해하지만 어떻게 그렇게 가장 높은 종류 I 것,

foreach ($final_array as $name => $score) { 
    echo $name . ' got a ' . (string)$score; 
} 
+1

도움 주셔서 대단히 감사합니다. 그것은 완벽하게 작동하고 각 부분을 설명해 주셔서 감사합니다. 그래서 내가 작성한 내용과 이유에 대해 더 잘 이해할 수 있습니다. 다시 한번 감사드립니다. –

+1

@ Rachel_1988 선생님 커뮤니티를 도와 줘서 다행입니다. –

0

사용 PHP 파일 hanlder http://php.net/manual/en/function.fgets.php

버전.

코드 예 : // R - 읽기

<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>YOUR TITLE</title> 
    </head> 
    <body> 
<? 
$handler = @fopen('yourfile.txt', 'r'); 

// only 0 value is false. 
$i = 0; 


if ($handler) { 
    while (($buffer = fgets($handler)) !== false) { 
      //$result_tab = explode(':', $buffer); 
      //$i++; // auto increment 
      echo $buffer.'<br />'.PHP_EOL; 

    } 
    if (!feof($handler)) { 
     echo "Error: unexpected fgets() fail\n"; 
    } 
    fclose($handler); 
} 



?> 
    </body> 
</html> 
+0

좋아요 필요 수 번호는 위에 있고 여전히 정렬 과정 중에 점수 옆에 학생들의 이름을 유지합니다. 그래서 그것을 표시 한 후에, 그것은 정확할 것입니까? –

+0

폭발 결과 정렬 : http://php.net/manual/en/function.sort.php :) –

2

먼저 각 라인별로 파일을 읽을 것입니다. 한 번에 한 줄씩 읽거나 (fgets) 전체 파일을 문자열 (file_get_contents)로 읽을 수 있습니다.

그런 다음 각 줄을 구분 기호로 explode -function을 사용하여 분할합니다. 이 경우 콜론 문자가됩니다.

관련 문제