간단한 인터랙티브 웹사이트 구축하기 (2) 5.5 카운터 홈페이지에 카운터를 추가해 보겠습니다. 이 예제는 여러 번 설명되었지만 파일을 읽고 쓰는 방법과 자신만의 함수를 만드는 방법을 보여 주는 데 여전히 유용합니다. counter.inc에는 다음 코드가 포함되어 있습니다:
/* || 간단한 카운터 */ function get_hitcount($counter_file) { /* 카운터를 0으로 재설정 이렇게 하면 카운터를 사용하지 않은 경우 초기 값은 1이 됩니다. 물론 초기 값을 20000으로 설정하여 사람들을 속일 수도 있습니다 */ $ count=0; // 카운터 파일이 이미 존재하는 경우 내용을 읽습니다. if ( file_exists($counter_file) ) { $fp=fopen($counter_file,"r"); // 상위 20개만 선택했습니다. 귀하의 사이트가 너무 인기가 없기를 바랍니다. $count=0 fgets($fp,20) // fgets() 함수는 문자열을 반환하므로 , 우리는 0을 추가하여 자동으로 정수로 변환할 수 있습니다. fclose($fp); // 파일 작업이 완료되었습니다 } // 카운트 값을 한 번 늘립니다 $ count; //파일에 새 카운트 값 쓰기 $fp=fopen($counter_file,"w") fputs($fp,$count) fclose($fp ); # 카운트 값 반환 return ($count) } ?> 그런 다음 front.php3 파일을 변경하여 이 카운터를 표시합니다. < ? include ("include/counter.inc") // counter.txt 파일에 카운터 값을 넣고 읽어서 출력합니다 printf ("
< B> d
n", get_hitcount("counter.txt")); include("include/footer.inc"); ? > 새로운 front.php3을 살펴보세요 5.6 피드백 양식 방문자가 작성하여 이메일을 보낼 수 있는 또 다른 피드백 양식을 추가해 보겠습니다. 예를 들어, 우리는 이를 구현하기 위해 매우 간단한 방법을 사용합니다. 하나는 뷰어에게 입력 양식을 제공하고 다른 하나는 양식 데이터를 가져와 처리하여 사용자에게 메일로 보냅니다. PHP에서 양식 데이터를 얻는 것은 매우 간단합니다. 양식이 전송되면 양식에 포함된 각 요소에 해당 값이 할당되며 일반 변수에 대한 참조처럼 사용할 수 있습니다.
process_form.php3에서 $mytext 변수에 입력된 값이 할당됩니다. 매우 간단합니다! 마찬가지로 목록 상자, 체크 상자, 라디오 상자, 버튼 등과 같은 양식 요소에서 변수 값을 가져올 수 있습니다. 여러분이 해야 할 유일한 일은 나중에 참조할 수 있도록 양식의 각 요소에 이름을 지정하는 것입니다. 이 방법을 기반으로 이름, 이메일 주소, 메시지의 세 가지 요소가 포함된 간단한 양식을 생성할 수 있습니다. 방문자가 양식을 보내면 해당 양식을 처리하는 PHP 페이지(sendfdbk.php3)가 데이터를 읽어 이름이 비어 있는지 확인한 후 최종적으로 해당 데이터를 이메일로 보냅니다. 表单:form.php3
< if ( !empty($searchstr) ) { // 쿼리 문자열이 비어 있는지 확인 // 그렇지 않은 경우 grep 쿼리 호출 echo "n" // 대소문자 구분 모드에서 모든 파일을 쿼리하려면 grep 호출 $ cmdstr = "grep -i $searchstr *"; $fp = popen( $cmdstr, "r" ); // 명령을 실행하고 파이프를 출력합니다. $myresult = array(); 쿼리 결과 while( $buffer = fgetss ($fp, 4096)) { // grep은 다음 형식을 반환합니다. 파일 이름: 문자열과 일치하는 줄 수 // 따라서 The를 사용합니다. 함수 Split()은 데이터를 분리하고 처리합니다 list($fname, $fline) = Split(":",$buffer, 2) // 첫 번째 일치 결과만 출력합니다 ( !definated($myresult[$fname])) $myresult[$fname] = $fline; } // 이제 결과를 배열에 저장하고 아래에서 처리하고 출력할 수 있습니다. if ( count($myresult) ) { echo "n" while(list($fname,$fline) = Each($myresult)) echo "
n" echo "n"; } else { // 검색 결과가 없는 경우 echo "죄송합니다. $searchstr에서 검색 결과가 없습니다.< ;BR> n"; } pclose($fp); } ?>
include("include/footer.inc"); ? > 참고: PHP_SELF는 PHP에 내장된 변수입니다. 현재 파일 이름을 포함합니다. fgets()는 파일을 한 줄씩 읽으며 최대 길이는 4096(지정)자입니다. fgetss()는 출력 HTML 태그를 구문 분석한다는 점을 제외하면 fgets()와 유사합니다. split()의 매개변수는 2입니다. 출력을 두 부분으로만 분할하면 되기 때문입니다. ":"도 생략해야 합니다. each()는 전체 배열을 보다 편리하게 순회하는 데 사용되는 배열 연산 함수입니다. popen() 및 pclose()의 기능은 파이프라인 처리가 추가된다는 점을 제외하면 fopen() 및 fclose()와 매우 유사합니다. 위 코드는 검색 엔진을 구현하는 좋은 방법이 아니라는 점에 유의하세요. 이것은 우리가 PHP를 더 잘 배우는 데 도움이 되는 예일 뿐입니다. 이상적으로는 키워드 데이터베이스를 구축한 다음 검색해야 합니다.
이상 도로 위 운전 초보와 도로 위 PHP 초보자(6)를 소개했는데, 도로 위 운전 초보의 내용도 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.