PHP는 매우 강력한 이미지 처리 기능을 갖추고 있으며 웹 이미지를 쉽고 동적으로 생성할 수 있습니다.
다음은 PHP를 이용하여 만든 간단한 카운터입니다.
1. 일반 아이디어:
웹 페이지를 방문하면
파일을 열고 이전 방문자 수를 읽어 1을 더한 후 텍스트 파일에 기록합니다. 최근 방문자 수를
표준 형식으로 포맷한 다음 이미지 처리 기능을 호출하여 숫자를 그림으로 출력한 다음 새로운 방문자 수를
에 다시 기록하는 파일에 씁니다. 방문자 수.
2. 프로그램에서 사용하는 함수 설명:
A. 관련 파일 작업:
a. 파일 열기:
함수 프로토타입: int fopen(string filename, string mode)
반환 결과 : 파일이 성공적으로 열리면 함수는 파일 스트림 포인터를 반환하고, 그렇지 않으면 FALSE(0)를 반환합니다.
매개변수 설명:
string filename -- 열려는 파일 이름은 문자열 형식이어야 합니다.
예를 들어 "zzm.txt", "..zzm.txt" 등
문자열 모드 - 파일을 여는 방법은 문자 형식이어야 합니다.
'r', 읽기 전용 형식, 파일 포인터는 파일의 시작 부분을 가리킵니다.
'r', 읽기 및 쓰기 가능, 파일 포인터는 파일의 시작 부분을 가리킵니다.
'w', 쓰기 전용 형식에서는 파일 포인터가 시작 부분의 파일을 가리키고 파일 길이를 0으로 자릅니다.
파일이 존재하지 않으면 파일을 생성하려고 시도합니다.
'w', 읽기 및 쓰기 가능, 파일 포인터는 파일의 시작 부분을 가리키고 파일 길이를 0으로 자릅니다.
파일이 존재하지 않으면 파일 생성을 시도합니다.
'a', 추가 형식(작성만 가능), 파일 포인터는 파일 끝을 가리키며,
파일이 존재하지 않으면 파일 생성을 시도합니다.
'a', 읽기 및 쓰기 가능, 파일 포인터는 파일의 끝을 가리킵니다. 파일이 없으면
은 파일 생성을 시도합니다.
예: 현재 디렉토리 아래의 "zzm.txt"를 읽기 전용 형식으로 엽니다.
$fp = fopen("zzm.txt", "r")
b. > 함수 프로토타입: int fclose(int fp);
반환 결과: 성공 시 1이 반환되고, 실패 시 0이 반환됩니다.
매개변수 설명: int fp는 fopen 함수에서 반환되는 파일 스트림 포인터입니다.
예: fopen으로 방금 연 zzm.txt 파일을 닫습니다.
fclose($fp);
c. 파일 읽기:
함수 프로토타입: string fgets(int fp, int length); 🎜> 반환 결과: 길이가 -1인 문자열을 반환합니다. 파일 끝에 도달하면 EOF(End Of File)를 반환합니다.
매개변수 설명:
int fp - 데이터를 읽을 파일 스트림 포인터 , by fopen 함수에서 반환된 값
int length -- 읽은 문자 수, 실제 읽은 문자 수는 length -1
예: $fp에서 9 문자 읽기
$str1 = fgets ($fp,10);
d.파일 쓰기:
함수 프로토타입: int fputs(int fp, string str, int [length])
반환 결과: fclose와 동일
매개변수 설명 :
int fp -- 정보가 기록될 파일 스트림 포인터, fopen 함수가 반환한 값
string str -- 파일에 기록될 문자열.
int length -- 작성할 길이, 선택사항, 길이가 제공되지 않으면 전체 문자열이 작성되고,
그렇지 않으면 길이 문자가 작성됩니다.
예: $fp에 "0000000001" 쓰기
fput($fp, "0000000001");
B. 관련 문자열 함수:
a. 함수 프로토타입: int strlen(string str);
반환 결과: 문자열의 길이를 반환합니다.
매개 변수 설명:
String str -- 길이를 계산할 문자열
예: "000000000" 문자열 계산 length
$str2 = "000000000";
$len2 = strlen($str)
b. 문자열 추가: 가장 쉬운 방법은 a를 사용하는 것입니다.
예: $str1 및 $str2 추가
$str = $str1.$str2
C. 관련 그래픽 함수:
a. 새 이미지 생성:
함수 프로토타입: int imagecreate( int x_size, int y_size);
반환 결과: X*Y 픽셀 크기의 빈 이미지 식별 번호(ImageID)를 반환합니다.
매개변수 설명: x_size, y_size는 각각 새 이미지의 너비와 높이입니다(픽셀 단위). ) 단위)
예: 88*31 픽셀 크기의 새로운 빈 이미지 생성
$ImageID = imagecreate(88, 31)
b. 이미지에 색상 지정:
함수 프로토타입: int imagecolorallocate (int im, int red, int green, int blue)
반환 결과: 이미지에 대한 RGB 색상 식별 번호 반환($im)
매개변수 설명: int im 이미지 식별 번호
int 빨간색, 녹색, 파란색은 각각 빨간색, 녹색, 파란색의 구성 요소이며 값 범위는 0 - 255입니다.
예: $im 이미지에 식별 번호를 $white로 할당하고 흰색 RGB는 (255,255,255)
$white = imagecolorallocate($im, 255, 255, 255); > : 성공하면 1, 실패하면 0
매개변수 설명: int im, 이미지의 식별번호
int x, int y, 이미지의 (x, y) 좌표부터 색상 채우기 시작
(0,0) 이미지의 왼쪽 상단을 나타냄
int col, 색상 식별 번호
예: 검정색 채우기 시작 이미지의 왼쪽 상단부터(즉, 전체 사진) (imagecolorallocate 함수
는 검정색의 색상 식별 번호를 $blacked로 정의하는 데 사용되었습니다).
imagefill($im, 0, 0, $black);
d. 이미지의 너비 계산:
함수 프로토타입: int Imagesx(int im)
반환 결과: Return 이미지의 너비(단위는 픽셀)
매개변수 설명: int im, 이미지의 식별 번호.
예: 이미지의 너비 계산 $im
$px = Imagesx($im);
e. 이미지에 가로 텍스트 쓰기:
함수 프로토타입: int imagestring(int im, int 글꼴 , int x, int y, string s, int col)
반환 결과: 성공하면 1 반환, 실패하면 0 반환
매개변수 설명: int im, 이미지 식별 번호
int 글꼴, 글꼴 식별 번호, inside 글꼴 1~5를 생성하려면 사용자는 imageloadfont()를 사용하여 글꼴 자체를 로드할 수 있습니다.
int x, int y, 글꼴 좌표 쓰기를 시작합니다. (0,0)은 그림의 왼쪽 상단입니다.
string s, 쓸 문자열
int col, 글꼴의 색상 식별 번호
예: 글꼴 크기를 3으로, 이미지(3,3) 위치의 색상을 흰색( imagecolorallocate( 사용됨) 함수
는 검정색 식별 번호 $white를 사용하여 "E&J Counter" 문자열을 정의합니다.
ImageString($im, 3, 3, 3, "E&J Counter", $white); >f . 이미지에 직선을 그립니다:
함수 프로토타입: int imageline(int im, int x1, int y1, int x2, int y2, int col) 반환 결과: 성공하면 1을 반환합니다. 그렇지 않으면 0을 반환
매개변수 설명: int im, 이미지의 식별 번호
int x1, int y1, 라인의 시작 좌표
int x2, int y2, 라인의 끝 좌표
int col, 선의 색상 식별 번호
예: image $im
imageline($im, 1, 14, 85, 14, $white)
g. 이미지를 GIF 형식으로 출력합니다. ~ 함수 프로토타입: int imagegif (int im, string filename); 이미지 식별 번호
string filename, 이미지 이름 생성 , 선택 사항, 파일 이름이 비어 있으면 직접?
氖涑? gif") PHP 출력 내용을 그림으로 미리 정의합니다.
예: 파일 이름이 "image1.0"인 그림으로 $im을 출력합니다. gif"
imagegif($im, "image1.gif") ;
h. 릴리스 이미지:
함수 프로토타입: int imagedestroy(int im);
반환 결과: 성공하면 1을 반환하고, 그렇지 않으면 1을 반환합니다. return 0
매개변수 설명: int im, 공개할 이미지 식별 번호. 이 기능은 식별번호 im의 이미지와 해당 이미지가 차지하는 시스템 리소스를 해제합니다.
예: 릴리스 이미지 $im
imagedestroy($im)
3. 이 카운터 설치 방법:
A. 시스템에 PHP 인터프리터가 설치되어 있어야 합니다. PHP는 http://www.php.net/에서 다운로드할 수 있습니다. 이 사이트에는 검색하거나 다운로드하여 읽을 수 있는
자세한
기술 정보도 많이 있습니다. PHP 설치 방법은 자체 지침을 참조하세요.
B. 다음 프로그램 목록을 php 확장자를 가진 파일에 복사하고, php 스크립트를 실행할 수 있는 디렉토리에 넣으세요.
lv妫?
그리고 그 디렉토리 아래에 일반 텍스트 파일을 만드세요. 이름은 zzm.txt입니다.이 파일의 목적은 이전
방문자
수를 기록하는 것입니다. 카운터의 초기값(예: 5000)을 미리 설정할 수 있습니다.
C. 웹페이지에서 이 카운터를 어떻게 호출하나요? 다음과 같은 방법으로 호출할 수 있습니다:
첨부 파일: 전체 프로그램 목록
<
Header("Content-type: image/gif");
//출력을 이미지 유형으로 정의
$fp = fopen("zzm.txt", "r");
//이전 개수를 기록한 파일 열기 읽기 형식의 방문자 zzm.txt
$str1 = fgets($fp,10);
//이 카운터가 기록할 수 있는 최대 방문자 수는 999999999입니다.
$str1 ;
//카운터 추가됨 방문자 수를 포함한 zzm.txt 파일
fputs($fp, $str1)
//파일에 최근 방문자 수 기록
fclose($fp );
//파일 닫기
/*
다음은 방문자 수가 9자리 미만인 경우(예: 5000(4자리)) 형식으로 출력됩니다.
방문자 수를 000005000으로 변환하여 출력합니다. 방법은 방문자수를 자릿수로 계산하고
000000000(9자리)라는 숫자와 비교하여 자릿수의 차이를 구한 후 숫자 앞에 해당하는 0을 붙이는 것입니다
. 예를 들어 5000과 000000000의 길이는 5만큼 다르기 때문에 5000 앞에 5개의 0을 추가해야 합니다.
*/
$len1 = strlen($str1);
//방문자 수 계산
//카운터의 최대 개수 정의
$dif = $len2 - $ len1;
//두 자리 숫자의 차이, 즉 앞에 채워질 0의 개수를 계산합니다.
$rest = substr($str2, 0, $dif)
//인터셉트 채워질 0
$string = $rest.$str1; 4;
//글꼴 크기 정의
$im = imagecreate(88,31)
//새 이미지 만들기
$black = ImageColorAllocate($im, 0,0,0);
//검정색 정의 //카운터 배치 배경색을 검정색으로 설정
$px = (imagesx($im)-8.3* strlen($string))/2;
//문자열의 길이를 기준으로 문자열이 쓰여지기 시작하는 수평 좌표를 계산합니다. 문자열을 수평으로 중앙에 맞추려는 것이 목적입니다.
ImageString($im ,3,$px,2,"E&J Counter",$white)
//이미지에 "E&J Counter" 쓰기
imageline($im, 1, 14, 85, 14, $white);
//가로선 그리기
ImageString($im,$font,$px,15.5,$string,$white)
//방문자수 쓰기
ImageGif($im) ;
//이미지를 GIF 형식으로 출력
ImageDestroy($im)
//이미지 해제
?>
위 내용은 십진수 카운터에 대한 내용을 포함하여 php3로 작성한 간단한 카운터를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.