Thứ Hai

Đếm số người truy cập trong ngày và truy cập unique

Có lẽ bộ đếm số người truy cập đã quá quen thuộc với mọi người. 
Một số dạng đếm thông thường: 
- Tổng số ngừơi truy cập: chỉ cần tạo một file để lưu lại con số thể hiện số lần truy cập 

PHP CodeCopy To Clipboard
  • <?
  • $file    = "C:visitor.txt";
  • $incr=(file_exists($file))?file_get_contents($file):1;
  • $incr++;
  • $cont=fopen($file,'w');
  • fwrite($cont,$incr);
  • fclose($cont);
  • print 'Visit: '.$incr.'<br>';
  • ?> 

(cũng có thể dùng database thay cho file) 

- Đếm số người truy cập trong ngày: 

Tạo một database có có 2 field ID và Date 
PHP CodeCopy To Clipboard
  • <?
  • $conn = mysql_connect('câu lệnh connect');
  • mysql_db_select('your_db_name');
  • $sql = mysql_query("select * from <table> where Date='".date('Y-m-d')."'");
  • print 'số người truy cập trong ngày hôm nay:'.mysql_num_rows($sql);
  • // thêm một record mới
  • $sql = mysql("insert into <table> values('',date('Y-m-d'))");
  • ?>


- Đếm số ngừoi truy cập unique IP - mỗi IP chỉ tính một lần truy cập trong một ngày 
Tạo database gồm 3 field ID IP và Date với 2 khoá chính là IP và Date. Lúc này dữ liệu của chúng ta chỉ gồm những IP duy nhât trong một ngày( do thuộc tính khóa của IP và Date). nên công việc đếm của chúng ta bây giờ cũng giống như là đếm theo ngày. Chú ý là trên cùng một site thi đếm unique có giá trị nhỏ hơn hoặc bằng cách đếm thông thường trong ngày đó 

- Đếm số người đang online: Là đếm số ngừơi đang truy cập tại thờ điểm đó, nhưng trên thực tế thì là đếm số người online trong một khỏang thời gia $t (nếu t = 1ngày <=> đếm số người online trong ngày) 
$t thường được tính bằng giây, ta nên tạo database có cấu trúc như sau: 
ID Int(4) auto_increament 
Time int(10); 
PHP CodeCopy To Clipboard
  •  <?
  • // thêm một người online khi bạn truy cập
  • $now = time();
  • $sql = mysql("insert into <table> values('',$now)");
  • // đếm số ngừơi online trong khỏang thời gian $t
  • $sql = mysql("select * from <table> where Time>".($now-$t)
  • print mysql_num_rows($sql);
  • ?>

Trong bộ đếm số người online bạn có thể xóa đi những mẫu tin cũ (Time < $now - $t) để cho database nhẹ nhàng hơn
Nguồn:hoclaptrinh

Thứ Bảy

Làm việc với mảng trong PHP

Mở đầu 
Mảng là một cách hiệu quả để nhóm một lượng dữ liệu lại với nhau thành một khối duy nhất. Mảng trong PHP cũng như các ngôn ngữ khác (C/Java/VB), nó bao gồm 2 phần: khoá và giá trị (key và value). Nhưng vẫn có sự khác biệt, các khoá và giá trị trong PHP được dùng một cách tự do, không theo một ràng buộc quá mức nào cả. Bạn hoàn toàn có thể dùng một chuỗi để làm khoá, cũng như nhóm các giá trị không cùng kiểu dữ liệu với nhau lại làm thành một mảng. 

Tạo và thêm dữ liệu vào mảng 
Mảng được tạo dễ dàng bằng từ khoá array, và có thể thêm dữ liệu ngay trong phần nội dung của mảng. Nếu bạn thích dùng một key theo ý thích của mình thì có thể dùng toán từ => để thêm dữ liệu (value) cho key đó. 

Hơi khó hiểu, nhưng bạn hãy xem những ví dụ dưới đây để biết rõ hơn về cách tạo mảng cũng như cách lưu trữ giá trị trong mảng của PHP: 

PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   // PHP tự động gán key khi bạn tạo một mảng, bắt đầu từ key 0  
  •   // trong ví dụ dưới, key 0 có giá trị là "Piper", 
  •   // tương tự cho key 1, 2 và 3. 
  •   $airplanes = array("Piper""Cessna""Beech""Cirrus"); 
  •  
  •   // Chúng ta cũng có thể tạo key theo ý thích của chúng ta,  
  •   //không bắt buộc phải là số 
  •   $home = array("size" => 1800"style" => "ranch"
  •                 "yearBuilt" => 1955"numBeds" => 3
  •                 "numBaths" =>2"price" => 150000); 
  • ?> 

PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   // key của một mảng không bắt buộc bắt đầu phải là 0. 
  •   // Chẳng hạn, key 123 được dùng làm key bắt đầu trong ví dụ này. 
  •   $noises[123] = "hissssssss"
  •  
  •   // và khi khai báo như thế này, key tiếp theo của mảng sẽ là 124 
  •   $noises[] = "gobble gobble"
  •  
  • ?> 

Truy xuất vào 1 phần tử của mảng 
Bạn có thể truy xuất phần tử của mảng bằng cách gọi key của nó: 
PHP CodeCopy To Clipboard
  • <?php 
  •   // ví dụ về cách gọi key là 1 số 
  •   $breads = array("baguette""naan""roti""pita"); 
  •   echo "I like to eat "$breads[3] . "<br/>n"
  •  
  •   $computer = array("processor" => "Muncheron 6000"
  •                     "memory" => 2048"HDD1" => 80000
  •                     "graphics" => "NTI Monster GFI q9000"); 
  •  
  •   // ví dụ về cách gọi key là 1 chuỗi 
  •   echo "My computer has a " . $computer['processor'
  •        . " processor<br/>n"
  •  
  • ?> 

Xoá phần tử khỏi mảng 
Để xoá 1 phần tử nào đó của mảng, bạn dùng từ khóa unset cho phần tử đó: 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $drinks = array("Coffee""Café au Lait""Mocha""Espresso"
  •                   "Americano""Latte"); 
  •   unset($drinks[3]);    // xóa phần tử "Mocha" khỏi mảng. 
  •  
  • ?> 

Còn muốn xoá toàn bộ phần tử của mảng, bạn cũng dùng từ khoá unset, nhưng cho toàn bộ mảng: 
PHP CodeCopy To Clipboard
  • <?php 
  •   unset($drinks);   // mảng $drinks giờ đã bị xóa sạch dữ liệu 
  • ?> 

Đếm số phần tử của mảng 
Sử dụng từ khoá count: 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $drinks = array("Coffee""Café au Lait""Mocha""Espresso"
  •                  "Americano""Latte"); 
  •   $elems = count($drinks); 
  •   // kết quả sẽ là 6. 
  •   echo "The array $drinks has $elems elements<br/>n"
  •  
  • ?> 


II. Duyệt tất cả các phần tử của mảng 
Vòng lặp foreach 
PHP CodeCopy To Clipboard
  • foreach (array as [key =>] values) 
  •   khối lệnh  

Vòng lặp này sẽ duyệt qua từng phần tử một trong mảng, nó sử dụng một biến cho trước để tạo một bảng copy phần tử mà nó đang duyệt tới và xử lý trên biến đó. Vòng lặp kết thúc khi không còn phần tử nào để duyệt. 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $drinks = array("Coffee""Café au Lait""Mocha""Espresso"
  •                   "Americano""Latte"); 
  •   foreach ($drinks as $drink
  •   { 
  •     echo "We serve $drink<br/>n"
  •   } 
  •  
  • ?> 

Vòng lặp thông thường (for) 
Vòng lặp for hoàn toàn có thể được dùng để duyệt qua tất cả các key của mảng: 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $drinks = array("Coffee""Café au Lait""Mocha""Espresso"
  •                   "Americano""Latte"); 
  •  
  •   for ($x = 0$x < count($drinks); $x++) 
  •   { 
  •     echo "We serve '$drinks[$x]'<br/>n"
  •   } 
  •  
  • ?> 


III. Mảng nhiều chiều (Multi-Dimensional Arrays) 
Rất nhiều trường hợp bạn muốn lưu trữ nhiều mảng trong 1 mảng có sẵn. Khi đó, chúng ta có mảng một nhiều chiều. Và rất may mắn là PHP hỗ trợ rất mạnh mẽ và dễ dàng trong việc tạo mảng nhiều chiều. 
Thật vậy, đây là cách mà mảng nhiều chiều được tạo trong PHP : 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $bikes = array(); 
  •   $bikes["Tourmeister"] = array("name" => "Grande Tour Meister"
  •                                 "engine_cc" => 1100
  •                                 "price" =>12999); 
  •   $bikes["Slasher1000"] = array("name" => "Slasher XYZ 1000"
  •                                 "engine_cc" => 998
  •                                 "price" => 11450); 
  •   $bikes["OffRoadster"] = array("name" => "Off-Roadster"
  •                                 "engine_cc" => 550
  •                                 "price" => "4295"); 
  •  
  • ?> 


Còn đây là cách truy xuất vào các phần tử của mảng nhiều chiều: 
PHP CodeCopy To Clipboard
  • <?php 
  •  
  •   $names = array_keys($bikes); 
  •  
  •   foreach ($names as $name
  •   { 
  •     print $bikes[$name] . " costs: " . $bikes[$name]["price"
  •           . "<br/>n"
  •   } 
  •  
  • ?> 


IV. Lời kết 
Mảng là một khai báo rất dễ dàng trong PHP. Việc học về mảng thật ra không có gì khó, chỉ cần đọc qua các ví dụ, bạn cũng hoàn toàn có thể rút ra cho mình được phương thức mà PHP tạo một mảng đơn giản 


http://hoclaptrinh.net

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates