1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Đặt Bộ đếm trên trang Web doc

5 339 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đặt bộ đếm trên trang Web
Thể loại Hướng dẫn
Định dạng
Số trang 5
Dung lượng 117,13 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu bạn muốn lưu giữ website miễn phí thì đây là một số nhà cung cấp dịch vụ lưu website có hỗ trợ PHP: www.cbj.net, www.lycos.co.uk, www.sourceforge.net, … Sau đây là hướng dẫn nhanh để

Trang 1

Đặt Bộ đếm trên trang Web

Thật là điều tự nhiên, ngay khi đưa trang web đầu tiên của mình lên Internet, bạn đã muốn biết

có bao nhiêu người sẽ đến đọc trang web đó Cũng như bạn, tôi đã từng sử dụng khá nhiều những bộ đếm (counter) miễn phí Nhưng rồi không bằng lòng với những gì được cho không, cộng với chút công sức tìm hiểu, tôi đã tìm ra được cách làm bộ đếm cho mình

Vì bộ đếm này được viết bằng PHP nên điều kiện để bộ đếm hoạt động được là website của bạn phải hỗ trợ PHP Nếu bạn muốn lưu giữ website miễn phí thì đây là một số nhà cung cấp dịch vụ lưu website có hỗ trợ PHP: www.cbj.net, www.lycos.co.uk, www.sourceforge.net, …

Sau đây là hướng dẫn nhanh để bạn có được bộ đếm trên trang web của mình

Bước 1: Mở tệp web muốn đặt bộ đếm bằng một trình soạn thảo văn bản như Notepad, EditPlus, UltraEdit Mã HTML trang web của bạn sẽ hiện lên trong trình soạn thảo

Bước 2: Tìm đến vị trị bạn muốn hiện bộ đếm, và dán đoạn mã PHP dưới đây vào:

<?

$CountFile = "index.log";

$CF = fopen ($CountFile, "r");

$Hits = fread ($CF, filesize ($CountFile));

fclose ($CF);

$Hits++;

$CF = fopen ($CountFile, "w");

fwrite ($CF, $Hits);

fclose ($CF);

echo ($Hits);

?>

Bước 3: Lưu tệp Nếu tệp có phần mở rộng là htm thì đổi tên sang php Ví dụ index.htm thì đổi thành index.php Có vậy thì server mới hiểu và thi hành đoạn mã để hiện bộ đếm

Bước 4: Tạo một tệp văn bản có tên index.log để lưu giá trị đếm Nội dung tệp này là một con số bất kỳ mà bạn muốn bắt đầu cho bộ đếm của mình (ta hãy bắt đầu bằng con số 0) Nhớ đừng thêm dấu cách, Enter hay một ký tự nào khác ngoài con số trên

Bước 5: Upload tệp web chứa bộ đếm (index.php) và tệp index.log lên website của bạn Và nhớ đặt thuộc tính cho tệp index.log là writable bằng lệnh chmod 777

Bây giờ, hãy đánh địa chỉ tệp web của mình trong trình duyệt, bạn sẽ thấy trang web hiện lên cùng với bộ đếm Mỗi lần bạn nhấn nút Refresh thì bộ đếm lại tăng lên 1 đơn vị

***

Trang 2

Nay ta hãy nhìn sâu vào đoạn mã PHP một chút Nguyên lý chung của các bộ đếm là lưu giá trị đếm vào một tệp riêng, mỗi lần có người truy cập đến tệp web thì sẽ đọc giá trị lưu trong tệp đếm, tăng thêm 1, ghi lại vào tệp đếm và hiện giá trị đó lên màn hình

Trước hết, ta cần cho chương trình biết giá trị đếm được lưu ở đâu, hay nói cách khác, tên tệp lưu giá trị đếm là gì:

$CountFile = "index.log";

Dùng các hàm xử lý tệp do PHP cung cấp, ta lần lượt mở tệp ở chế độ đọc ("r" có nghĩa là

"reading") và gán con trỏ tệp cho biến $CF:

$CF = fopen ($CountFile, "r");

đọc toàn bộ nội dung tệp và lưu vào biến $Hits:

$Hits = fread ($CF, filesize ($CountFile));

và đóng tệp lại sau khi đọc xong:

fclose ($CF);

Giá trị đếm hiện tại đã được lưu ở biến $Hits, giờ ta tăng biến này thêm 1 để chỉ rằng đã có thêm một người nữa truy cập trang web:

$Hits++;

Các bước tiếp theo cũng tương tự như ở trên Ta mở tệp ở chế độ ghi ("w" có nghĩa là "writing"), ghi lại biến $Hits (đã tăng thêm 1 so với trước) và đóng tệp sau khi ghi xong:

$CF = fopen ($CountFile, "w");

fwrite ($CF, $Hits);

fclose ($CF);

Việc cuối cùng là ta hiện giá trị đếm lên màn hình:

echo ($Hits);

Giá trị đếm này hiện lên ở chế độ văn bản, sử dụng đúng loại font mà bạn đang dùng trong trang web Nếu bạn muốn thay đổi kiểu chữ, cỡ chữ, màu sắc để làm nổi bật bộ đếm, bạn có thể sử dụng thẻ <FONT> trong mã HTML để làm điều này

***

Bạn chắc cũng chưa thoả mãn với bộ đếm ở dạng văn bản mà muốn bộ đếm được thể hiện ở dạng đồ hoạ, giống như ở các trang web chuyên nghiệp khác Việc này không khó Bạn cần có thêm các tệp ảnh (dạng gif hoặc jpg) chứa các con số từ 0 đến 9 Bạn có thể tải về nhiều tệp ảnh với các hình dạng con số khác nhau tại Digitmania Giả sử các tệp ảnh này có tên lần lượt là 0.gif, 1.gif, … 9.gif - mỗi tệp tương ứng với một con số, và các tệp ảnh này đều lưu ở cùng thư mục với tệp index.php trên server

Đoạn mã PHP trong tệp index.php sẽ như sau:

Trang 3

<?

$CountFile = "index.log";

$CF = fopen ($CountFile, "r");

$Hits = fread ($CF, filesize ($CountFile));

fclose ($CF);

$Hits++;

$CF = fopen ($CountFile, "w");

fwrite ($CF, $Hits);

fclose ($CF);

for ($i = 0; $i < strlen($Hits); $i++)

{

$Digit = substr ($Hits, $i ,1);

echo "<IMG SRC = \"$Digit.gif\">";

}

?>

Bạn thấy là những dòng đầu hoàn toàn giống như trước Sự khác nhau chỉ bắt đầu ở dòng cuối cùng Thay vì dòng lệnh echo ($Hits); ta dùng vòng lặp for để lần lượt tách từng con số trong giá trị đếm và lưu tạm vào một biến gọi là $Digit:

$Digit = substr ($Hits, $i ,1);

sau đó ta sẽ dùng thẻ <IMG> của HTML để chỉ ra các tệp ảnh nào ta muốn hiện tương ứng với từng con số trong giá trị đếm:

echo "<IMG SRC = \"$Digit.gif\">";

Ví dụ giá trị đếm lưu trong biến $Hits là 865 Giá trị này gồm 3 chữ số nên vòng lặp for sẽ được thực hiện 3 lần Tại lần thứ nhất, biến $Digit sẽ được gán với con số thứ nhất, tức là bằng 8 Lần thứ hai và thứ ba, biến $Digit sẽ lần lượt nhận giá trị là 6 và 5 Kết quả là trang web index.php khi xuất hiện trong trình duyệt của người dùng sẽ có mã HTML thực tế là:

<IMG SRC="8.gif"><IMG SRC="6.gif"><IMG SRC="5.gif">

và trình duyệt sẽ hiện lên 3 tệp ảnh tương ứng với các con số 8, 6, 5, tạo thành một dãy số hoàn chỉnh là số lần trang web đã được truy cập

***

Câu hỏi cuối cùng đặt ra: Làm thế nào để đặt bộ đếm trên nhiều trang web khác nhau mà mỗi trang không phải lặp lại đoạn mã trên nữa? Cũng như nhiều ngôn ngữ lập trình khác, PHP cho phép người dùng tạo ra các hàm xử lý riêng và đặt các hàm này ở một tệp riêng để giảm bớt chiều dài cho tệp chính Tệp chứa các hàm riêng như vậy gọi là tệp thư viện

Vận dụng khả năng trên, ta đặt toàn bộ đoạn mã bộ đếm vào một hàm gọi là Counter và đặt hàm này vào một tệp thư viện có tên là ezcount.php Hãy nhìn vào nội dung của tệp ezcount.php này

là gì:

Trang 4

<?php

function Counter ($CountFile, $Text, $ImgPath, $ImgType)

{

$CF = fopen ($CountFile, "r");

$Hits = fread ($CF, filesize ($CountFile));

fclose ($CF);

$Hits++;

$CF = fopen ($CountFile, "w");

fwrite ($CF, $Hits);

fclose ($CF);

if ($Text)

{

echo ($Hits);

}

else

{

for ($i = 0; $i < strlen($Hits); $i++)

{

$Digit = substr ($Hits, $i ,1);

echo "<IMG SRC =\"$ImgPath/" $Digit "$ImgType\">";

}

}

}

?>

Ta dễ dàng nhận thấy nội dung chính của tệp ezcount.php cũng giống như đoạn mã mà ta đã biết Nhưng ở đây có một số điểm mới nhằm giúp đoạn mã được sử dụng linh hoạt hơn Hãy nhìn vào dòng đầu tiên của hàm:

function Counter ($CountFile, $Text, $ImgPath, $ImgType)

Dòng này chỉ ra hàm của chúng ta có tên là Counter và có 4 giá trị đầu vào, hay còn gọi là 4 tham số

• Tham số thứ nhất $CountFile chỉ ra tên tệp lưu giá trị đếm Với mỗi tệp web, ta cần có một tệp lưu giá trị đếm nên ta cần phải chỉ rõ tên tệp lưu giá trị đếm này khi gọi hàm để tránh ghi nhầm vào tệp lưu giá trị đếm khác

• Vì có lúc ta muốn dùng bộ đếm dạng văn bản, có lúc lại muốn dùng bộ đếm dạng đồ hoạ nên ta cần có một tham số $Text có tác dụng như nút chuyển giữa hai dạng này Nếu muốn thể hiện bộ đếm dạng văn bản, khi gọi hàm ta đặt tham số này bằng 1, còn với bộ đếm dạng đồ hoạ, tham số này cần đặt bằng 0

• Tham số thứ ba $ImgPath chỉ ra đường dẫn thư mục lưu các tệp ảnh chứa con số Vì tệp web chứa bộ đếm có thể không nằm cùng thư mục với các tệp ảnh chứa con số nên ta cần có đường dẫn này để tìm đến đúng nơi chứa các tệp ảnh

Trang 5

• Tham số thứ tư $ImgType chỉ ra loại tệp ảnh, được thể hiện bằng phần mở rộng của tệp là

".gif" hoặc ".jpg"

Giờ ta nhìn vào đoạn cuối của hàm Đây là nơi xử lý cụ thể việc lựa chọn giữa bộ đếm dạng văn bản và dạng đồ hoạ Ý nghĩa của biểu thức if … else ở đây là: Nếu biến $Text bằng 1, sẽ thi hành

mã lệnh echo ($Hits); để hiện bộ đếm dạng văn bản, còn nếu không (khi biến $Text bằng 0) sẽ thi hành đoạn mã để hiện bộ đếm dạng đồ hoạ

Khi chọn sử dụng bộ đếm dạng đồ hoạ, các tham số $ImgPath và $ImgType trong dòng lệnh echo "<IMG SRC =\"$ImgPath/" $Digit "$ImgType\">"; sẽ được thay bằng nội dung cụ thể khi gọi hàm

Để sử dụng hàm Counter, trong tệp web đặt bộ đếm (index.php) ta chỉ cần đặt những dòng sau:

<?php

include "ezcount.php";

Counter ("index.log", 0, "digit", ".gif");

?>

Đoạn mã trên sẽ đưa nội dung tệp ezcount.php thành một phần của tệp index.php và gọi hàm Counter với các tham số cụ thể: tên tệp lưu giá trị đếm là index.log, sử dụng bộ đếm dạng đồ hoạ ($Text bằng 0), thư mục chứa các tệp con số là digit, và phần mở rộng của các tệp con số là gif

Bằng cách gán sẵn một số giá trị cho các tham số khi khai báo hàm như sau:

function Counter ($CountFile, $Text=1, $ImgPath="digit", $ImgType=".gif")

nếu cần gọi hàm Counter để hiện bộ đếm dạng văn bản, bạn chỉ cần viết như sau:

<?php

include "ezcount.php";

Counter ("index.log");

?>

 

Ngày đăng: 13/12/2013, 01:16

TỪ KHÓA LIÊN QUAN

w