Archive for the ‘Học PHP’ category

PHP coding standard

April 24th, 2008

( Thegioiwebsite.net ) - Dưới đây là tài liệu hướng dẫn cách viết code theo đúng chuẩn.Nếu bạn muốn trở thành coder chuyên nghiệp xin hãy đọc tài liệu này. Download tại đây.

Tổn hợp bởi : Nguyễn Đức Mạnh (ducmanh@thegioiwebsite.net)

 

Hàm chuyển đổi tiêu đề tiếng việt có dấu sang không dấu

March 30th, 2008

Để hiển thị tiêu đề vừa là tiếng việt có dấu,vừa không có dấu (cái này có tác dụng lớn đến SEO - Search Enginze Optimized ) thì hàm sau sẽ giúp bạn chuyển tiếng việt có dấu thành không dấu.

function cv2urltitle($text) {

$text = str_replace(
array(’ ‘,’%',”/”,”\\”,’”‘,’?',’<’,'>’,”#”,”^”,”`”,”‘”,”=”,”!”,”:” ,”,,”,”..”,”*”,”&”,”__”,”▄”),
array(’_',” ,” ,” ,” ,” ,” ,” ,” ,” ,” ,” ,’-',” ,’-',” ,” ,” , “_” ,”" ,”"),
$text);

$chars = array(”a”,”A”,”e”,”E”,”o”,”O”,”u”,”U”,”i”,”I”,”d”, “D”,”y”,”Y”);

$uni[0] = array(”á”,”à”,”ạ”,”ả”,”ã”,”â”,”ấ”,”ầ”, “ậ”,”ẩ”,”ẫ”,”ă”,”ắ”,”ằ”,”ặ”,”ẳ”,”� �”);
$uni[1] = array(”Á”,”À”,”Ạ”,”Ả”,”Ô,””,”Ấ”,”Ầ”, “Ậ”,”Ẩ”,”Ẫ”,”Ă”,”Ắ”,”Ằ”,”Ặ”,”Ẳ”,”� �”);
$uni[2] = array(”é”,”è”,”ẹ”,”ẻ”,”ẽ”,”ê”,”ế”,”ề” ,”ệ”,”ể”,”ễ”);
$uni[3] = array(”É”,”È”,”Ẹ”,”Ẻ”,”Ẽ”,”Ê”,”Ế”,”Ề” ,”Ệ”,”Ể”,”Ễ”);
$uni[4] = array(”ó”,”ò”,”ọ”,”ỏ”,”õ”,”ô”,”ố”,”ồ”, “ộ”,”ổ”,”ỗ”,”ơ”,”ớ”,”ờ”,”ợ”,”ở”,”� �”);
$uni[5] = array(”Ó”,”Ò”,”Ọ”,”Ỏ”,”Õ”,”Ô”,”Ố”,”Ồ”, “Ộ”,”Ổ”,”Ỗ”,”Ơ”,”Ớ”,”Ờ”,”Ợ”,”Ở”,”� �”);
$uni[6] = array(”ú”,”ù”,”ụ”,”ủ”,”ũ”,”ư”,”ứ”,”ừ”, “ự”,”ử”,”ữ”);
$uni[7] = array(”Ú”,”Ù”,”Ụ”,”Ủ”,”Ũ”,”Ư”,”Ứ”,”Ừ”, “Ự”,”Ử”,”Ữ”);
$uni[8] = array(”í”,”ì”,”ị”,”ỉ”,”ĩ”);
$uni[9] = array(”Í”,”Ì”,”Ị”,”Ỉ”,”Ĩ”);
$uni[10] = array(”đ”);
$uni[11] = array(”Đ”);
$uni[12] = array(”ý”,”ỳ”,”ỵ”,”ỷ”,”ỹ”);
$uni[13] = array(”Ý”,”Ỳ”,”Ỵ”,”Ỷ”,”Ỹ”);

for($i=0; $i<=13; $i++) {
$text = str_replace($uni[$i],$chars[$i],$text);
}

return $text;
}

Trên đây là 1 cách khá ngắn gọn và hay.Dưới đây cũng có 1 cách khác hay ko kém mà mình tổng hợp được trên internet nay post các bạn tham khảo.

Cách 2:

#function convert to viet nam
function CovertVn($str)
{
$str = preg_replace(”/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|� �|ặ|ẳ|ẵ)/”, ‘a’, $str);
$str = preg_replace(”/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/”, ‘e’, $str);
$str = preg_replace(”/(ì|í|ị|ỉ|ĩ)/”, ‘i’, $str);
$str = preg_replace(”/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|� �|ợ|ở|ỡ)/”, ‘o’, $str);
$str = preg_replace(”/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/”, ‘u’, $str);
$str = preg_replace(”/(ỳ|ý|ỵ|ỷ|ỹ)/”, ‘y’, $str);
$str = preg_replace(”/(đ)/”, ‘d’, $str);
$str = preg_replace(”/(À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|� �|Ặ|Ẳ|Ẵ)/”, ‘A’, $str);
$str = preg_replace(”/(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)/”, ‘E’, $str);
$str = preg_replace(”/(Ì|Í|Ị|Ỉ|Ĩ)/”, ‘I’, $str);
$str = preg_replace(”/(Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|� �|Ợ|Ở|Ỡ)/”, ‘O’, $str);
$str = preg_replace(”/(Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)/”, ‘U’, $str);
$str = preg_replace(”/(Ỳ|Ý|Ỵ|Ỷ|Ỹ)/”, ‘Y’, $str);
$str = preg_replace(”/(Đ)/”, ‘D’, $str);
$str = preg_replace(”/( )/”, ‘_’, $str);
return $str;
}

Tổng hợp trên Internet

Lấy tin dự báo thời tiết & tỷ giá ngoại tệ tự động

March 22nd, 2008

Để lấy tin dự báo thời tiết từ một số website ( ví dụ từ VNexpress.net chẳng hạn) các bạn làm như sau:

Vì hôm nay muộn quá mình Upload lên đây để các bạn download về tìm hiểu nhé.Các file này mình đã test thử và chạy tốt. Thời thiêt.rar    Tỷgiá.rar

Các bạn bấm vào 2 đường link trên để download về chạy thử nhé.Chúc các bạn thành công !


Nguyễn Đức Mạnh

Chuyển chuỗi string sang mảng(Convert string into array).

March 22nd, 2008

Nhiều khi bạn có 1 chuỗi string và muốn chuyển từng ký tự string đó vào 1 mảng.Ví dụ:bạn có chuỗi:$str=123789456 và bây giờ bạn muốn chuyển các số trong chuỗi trên vào mảng với mục đích để sắp xếp thành: 123456789 chẳng hạn.Vậy thì Hàm dưới đây sẽ giúp bạn làm được điều đó trong giây lát.?>

<?php
function strsplit($thetext,$num)
{
if (!$num)  $num=1;
     $arr=array();
    $x=floor(strlen($thetext)/$num);
while ($i<=$x)
{
     $y=substr($thetext,$j,$num);
    if ($y) {
     array_push($arr,$y);
    }
   $i++;
   $j=$j+$num;
}
    return $arr;
}
?>

ví dụ:
<?php
$str1="25431";
$str2="thegioiwebsite.net";
$arr1=strsplit($str1,1);
$arr2=strsplit($str2,5);

?>

Kết quả sẽ có dạng:
$arr1[0]=>2
$arr1[1]=>5
$arr1[2]=>4
$arr1[3]=>3
$arr1[4]=>1

——————
$arr2[0]=>thegi
$arr2[1]=>oiweb
$arr2[2]=>site.
$arr2[3]=>net

Đối với PHP5 trở đi bạn có thể sử dụng hàm có sẵn: str_split trong PHP để cắt chuỗi string rồi cho nó vào mảng

Upload ảnh lên Server từ một địa chỉ URL

March 22nd, 2008

Ở bài Hàm Upload ảnh lên Server Đức Mạnh tui đưa ra cách để upload ảnh từ máy tính của bạn lên Server.Nay tui lại đưa ra 1 vấn đề thế này : Bạn thấy các website khác có những ảnh bạn cần.Thông thường bạn phải save về máy tính của bạn rồi dùng hàm upload ở bài trước để upload lên server.Nói chung công việc cũng khá vất vả,nếu kết hợp cả cách đó và cách tôi sẽ đưa ra dưới đây sẽ làm bạn nhàn hạ hơn rất nhiều.

#function upload_url can upload file from URL to your host.This function written by Nguyen Duc Manh - ducmanh@thegioiwebsite.net
function upload_url($url,$save_to)
{
/*$save_to là đường dẫn đến file cần save lại.Ví dụ: $save_to=”images/news/”
*/
$type_upload=explode(”,”,jpg,bmp,gif,png);//return an array
$ext=getExt(basename($url));// return extension of filename
$name=basename($url);//lấy tên file từ URL

if(!in_array($ext,$type_upload)){
msg(”Khong upload duoc anh vi : Anh khong dung dinh dang “);
}
else{
$fn=$save_to.$name;//vi du:images/news/
$fp=fopen($fn,”w”);
$content=file_get_contents($url);//lấy nội dung của file
fwrite($fp,$content,strlen($content));
fclose($fp);
}
}

Giải thích:

Một số hàm có sử dụng từ bài trước : hàm msg($str), hàm getExt($filename),

Cách sử dụng:

<?php
//ví dụ url=http://www.thegioiwebsite.net/layout_images/banner/kien-thuc-web.gif
$url=”http://www.thegioiwebsite.net/layout_images/banner/kien-thuc-web.gif”;
$save_to=”images/upload/”;
upload_url($url,$save_to);//upload len SERVER
?>

Kết quả bạn vào thư mục images/upload bạn sẽ thấy file ảnh : kien-thuc-web.gif.

Chúc các bạn thành công !

Blog.Thegioiwebsite.Net - Website based learning

Hàm upload ảnh lên Server.

March 22nd, 2008

Ở bài trước Tạo Form upload lên Server đã chỉ ra cách upload file lên server.Tuy nhiên đây là một cách khác đơn giản mà tớ đã viết thành hàm để sử dụng nhiều lần.Nó vừa đơn giản về cách viết và dễ sử dụng.

Bắt đầu:

Trước hết ta viết hàm để lấy extension ( định dạng file cho phép upload lên SERVER)

function getExt($file)
{
    return substr($file,strrpos($file,".")+1);
}

#Hàm này trả về extentsion của file.Ví dụ có file xinhgai.jpg khi gọi $ext=getExt("xinhgai.jpg") thì kết quả $ext=jpg

function msg($str) {

   //Ham nay thong bao hop thoai

    echo"<script>alert($str);</script>";

}

Sau khi viết xong hàm này ta viết phần chính để xử lý file upload

# Ham upload image
function upload($filename,$path)
{
    $type_upload=explode(",","jpg,gif,BMP,PNG,jpeg");//return an array

    $IMAGE_SIZE=5120; // 5KB
    $ext=getExt(basename($path));// return extension of filename
    $size=$_FILES[$filename]["size"];
    if(!in_array($ext,$type_upload) || (floatval($size/1024)>floatval($IMAGE_SIZE))){
        msg("Khong upload duoc anh vi : Anh khong dung dinh dang hoac kich thuoc > ".$IMAGE_SIZE." KB");
    }
    else{
        move_uploaded_file($_FILES[$filename]["tmp_name"],$path);
    }
}

 

Giải thích:

$type_upload là mảng các định dạng ảnh được phép upload.

$IMAGE_SIZE:  Là kích thước ảnh tối đa được upload ( ở ví dụ này là 5 KB)

$filename: tên của form upload

$path:Tên file ảnh đầy đủ ( Gồm cả đường dẫn .Ví dụ : mages/upload/tenanh.jpg )

Cách Sử dụng:
Ví dụ có Form HTML như sau

<form method="post" enctype="multipart/form-data">
  <input type="file" name="image" size="50"  />
   <input type="submit" value="Upload Now"  />
</form>

CODE PHP:

<?php

#Upload image:
          $image=$_FILES['image']['name'];

          $path="images/upload/".$image; // Lấy đường dẫn đến ảnh
           upload(’image’,$path); //Upload lên Server

?>

Khi bạn click nút Upload Now thì ảnh sẽ được upload vào thư mục chỉ định : images/upload.

 

Đây chỉ là một cách làm của tớ.Nếu các bạn xem có ý kiến gì thì comments nhé hoặc gửi mail cho tớ: drducmanh@gmail.com.

 

Chúc các bạn vui vẻ.

Blog.Thế giới website.net - Nơi lý tưởng để học lập trình web

 

Hàm lấy kích thước thật của ảnh

March 22nd, 2008

Khi bạn view ảnh bằng popup và bạn muốn làm sao để kích thước popup lớn đúng bằng kích thước của ảnh.Như vậy trước hết bạn phải biết được kích thước thật của ảnh đã.Dưới đây tôi xin trình bày với các bạn cách để lấy kích thước thật của ảnh.

#Lay kich thuoc that cua anh
function GetPictureSize($filename )
{
    $size_info=getimagesize($filename);
    return $size_info;
}

Hàm trên trả về 1 mảng gồm 2 phần tử: $size_info[0] là chiều rộng của ảnh , $size_info[1] là chiều cao của ảnh. Nếu không thích dùng dùng mảng mà muốn trả về ngay giá trị cụ thể của thì bạn viết tách thành 2 hàm sau:

function GetPictureWidth($filename)
{
    $temp=getimagesize($filename);
    return $temp[0];
}

function GetPictureHeight($filename)
{
    $temp=getimagesize($filename);
    return $temp[1];
}

 

—The End—

Tạo Form để upload file lên Server.

March 22nd, 2008

TẠO FORM ĐỂ UPLOAD FILE
Form để upload file cần thoã mãn các điều kiện sau:
      * method là POST
    * enctype là multipart/form-data

Mã HTML của form sẽ từa tựa như sau:

<form method="POST" enctype="multipart/form-data" action="process_upload.php">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    <input type="file" name="file_upload" size="20">
    <input type="submit" value="Upload">
</form>

Đoạn code trên sẽ tạo 1 form với 1 nút Browse… để ban chọn file cần upload, và 1 nút Upload để bạn submit form. Form sẽ được submit tới file process_upload.php nằm cùng thư mục với file chứa form.

Một số browser support MAX_FILE_SIZE sẽ kiểm tra dung lượng file trước khi form được submit, tuy nhiên không phải browser nào cũng vậy. Cho nên bạn đừng nên tin tưởng tuyệt đối vào server! Ở ví dụ trên, nếu browser hỗ trợ, nhưng file có dung lượng lớn hơn 30000 byte sẽ được browser thông báo lỗi khi submit form.

XỬ LÝ DỮ LIỆU ĐƯỢC SUBMIT LÊN SERVER

Bây giờ ta hãy xem xét tới phần xử lý dữ liệu được submit lên server trong file process_upload.php. PHP lưu thông tin về file được upload lên server trong biến global $_FILES. Với form ở ví dụ trên, PHP sẽ truyền cho script process_upload.php các thông tin sau:

    * $_FILES['file_upload']['name']: tên file gốc trên máy client. Tuỳ vào browser, tên file có thể được truyền lên server ở dạng C:\folder\filename.ext hoặc chỉ là filename.ext. Chương trình phải tự kiểm tra và trích ra tên file nếu cần thiết.
    * $_FILES['file_upload']['type']: kiểu của file, được lưu ở dạng MINE (Ví dụ: image/gif, audio/wav).
    * $_FILES['file_upload']['size']: dung lượng của file tính theo byte.
    * $_FILES['file_upload']['tmp_name']: sau khi upload, server sẽ lưu file vào một file tạm trên server, biến này cho ta biết đường dẫn và tên của file tạm đó. Chương trình sẽ đọc file tạm này để lấy nội dung của file được upload.
    * $_FILES['file_upload']['error']: mã lỗi, chương trình nên kiểm tra biến này để bảo đảm rằng quá trình upload không xảy ra lỗi.
          o UPLOAD_ERR_OK ( = 0 ): không có lỗi, quá trình upload thành công.
          o UPLOAD_ERR_INI_SIZE ( = 1 ): dung lượng file upload vượt quá giới hạn được chỉ định trong file php.ini.
          o UPLOAD_ERR_FORM_SIZE ( = 2 ): dung lượng file upload vượt quá giới hạn được chỉnh định bởi MAX_FILE_SIZE.
          o UPLOAD_ERR_PARTIAL ( = 3 ): file chỉ được upload 1 phần (có thể là do lỗi đường truyền trong quá trình upload).
          o UPLOAD_ERR_NO_FILE ( = 4 ): không có file nào được upload (có thể là file ở client không tồn tại).

Khi đã có toàn bộ các thông tin cần thiết, xử lý file như thế nào là quyến định của bạn. Bạn có thể đọc nội dung của file và lưu vào database, hoặc di chuyển file và lưu vào thư mục upload của bạn. Sau đây là 1 ví dụ của file process_upload.php.

Đầu tiên, kiểm tra xem tác vụ có phải là upload hay không:

if ( $_SERVER["REQUEST_METHOD"] != "POST" ) {
    //thông báo lỗi không phải là method POST
    //và thoát
    exit(-1);
} //end if

 

Tiếp theo kiểm tra xem quá trình upload có lỗi gì không:

if ( !isset($_FILES["file_upload"]["error"] ||
        $_FILES["file_upload"]["error"] != 0 ) {
    //thông báo lỗi dựa vào giá trị của $_FILES["file_upload"]["error"]
    //và thoát
    exit(-1);
} //end if
 
//ta cũng có thể kiểm tra xem dung lượng file có vượt quá giới hạn
//của chương trình hay không
if ( $_FILES["file_upload"]["size"] > $MAX_FILE_SIZE ) {
    //thông báo lỗi
    //và thoát
    exit(-1);
}

Tách tên file từ client:

$temp = preg_split(’/[\/\\\\]+/’, $_FILES["file_upload"]["name"]);
$filename = $temp[count($temp)-1];
 
//ta cũng có thể kiểm tra phần mở rộng của file nếu cần thiết
if ( !preg_match(’/\.(gif|jpg)$/i’, $filename ) {
    //thông báo lỗi file upload không phải là dạng GIF hoặc JPG
    //và thoát
    exit(-1);
} //end if

 

Và cuối cùng, lưu file được upload vào nơi cần thiết:

$upload_dir = "/home/nbthanh/public_html/uploads/";
$upload_file = $uploaddir . $filename;
if ( move_uploaded_file($_FILES["file_upload"]["tmp_name"], $upload_file) ) {
   //file đã được upload và copy sang thư mục lưu trữ thành công
} else {
   //có lỗi xảy ra
} //end if

 

CÁC HÀM PHP ĐƯỢC DÙNG TRONG VÍ DỤ

    * exit: dừng/thoát chương trình ngay lập tức.
    * isset: kiểm tra xem biến có tồn tại hay không. Trong ví dụ của bài viết, ta dùng hàm isset để kiểm tra xem biến $_FILES["file_upload"]["error"] có tồn tại hay không.
    * preg_split: tách một chuỗi thành từng phần nhỏ theo regular expression. Trong ví dụ của bài viết, ta dùng hàm này để tách tên file cùng đường dẫn ra thành từng phần nhỏ (phân cách nhau bằng ký tự \ hoặc /, ta không biết chắc được client là Windows hay Linux nên ta tách theo trường hợp tổng quát). Sau khi tách, phần tử cuối cùng sẽ là tên file.
      Một cách khác để lấy tên file là dùng hàm basename. Tuy nhiên sử dụng hàm này sẽ có một số vấn đề nảy sinh, bạn tham khảo thêm ở đây: http://www.php.net/manual/en/function.basename.php.
    * count: đếm số lượng phần tử trong mảng. $a[count($a)-1] sẽ truy cập tới phần tử cuối cùng của mảng $a.
    * preg_match: sử dụng regular expression để tìm xem chuỗi con có xuất hiện trong chuỗi mẹ hay không. Trong ví dụ của bài viết, ta dùng hàm này để kiểm tra xem tên của của có được kết thúc bằng .gif hoặc .jpg hay không.
    * move_uploaded_file: di chuyển file được upload từ client đến 1 thư mục khác trên server.

TÀI LIỆU THAM KHẢO

PHP Manual: http://www.php.net/manual/en/index.php

    * Regular Expression Functions (Perl-Compatible): http://www.php.net/manual/en/ref.pcre.php
    * Handling file uploads: http://www.php.net/manual/en/features.file-upload.php

Xử lý lỗi tìm kiếm trong MYSQL

March 22nd, 2008

Không biết các bạn đã bao giờ gặp phải vấn đề lỗi tìm kiếm trong MYSQL chưa. Vấn đề thế này :

Ví dụ : Trong cơ sở dữ liệu bạn có các chữ : ” ống dây cáp,cuộc sống,…”.

Khi bạn Search với từ khóa : “ỐNG day cáp” hay cuỘc sỐng thì bạn không nhận được kết quả nào cả.

Qua tìm hiểu mình thấy rằng các phiên bản MYSQL 4.xxx không nhận dạng được một số ký tự unicode chữ hoa hay chữ thường.( Các phiên bản mới hơn thì mình cũng ko biết có bị lỗi vậy ko ).

Để giải quyết vấn đề này mình đã viết ra hai hàm sau mong rằng sẽ có ích cho các bạn

#Function Fillter to Search

function toUpper ($text) {
$lower = array(
‘á’,'à’,'ả’,'ã’,'ạ’,'â’,'ấ’,'ầ’,'ậ’,'ẩ’,'ẫ’,'ă’,'ắ’,'ằ’,'ặ’,'ẵ’,'ẳ’,'ê’,'ế’,'ề’,'ệ’,'ể’,'ễ’,
‘ô’,'ố’,'ồ’,'ộ’,'ổ’,'ỗ’,'ơ’,'ớ’,'ờ’,'ợ’,'ỡ’,'ở’,'ư’,'ứ’,'ừ’,'ự’,'ữ’,'ử’,'ị’,'ì’,'í’,'ĩ’,'ỉ’,
‘ý’,'ỳ’,'ỵ’,'ỷ’,'ỹ’,'ù’,'ú’,'ụ’,'ũ’,'ủ’
);

$upper=array(
‘Á’,'À’,'Ả’,'Ã’,'Ạ’,'Â’,'Ấ’,'Ầ’,'Ậ’,'Ẩ’,'Ẫ’,'Ă’,'Ắ’,'Ằ’,'Ặ’,'Ẵ’,'Ẳ’,'Ê’,'Ế’,'Ề’,'Ệ’,'Ể’,'Ễ’,
‘Ô’,'Ố’,'Ồ’,'Ộ’,'Ổ’,'Ỗ’,'Ơ’,'Ớ’,'Ờ’,'Ợ’,'Ỡ’,'Ở’,'Ư’,'Ứ’,'Ừ’,'Ự’,'Ữ’,'Ử’,'Ị’,'Ì’,'Í’,'Ĩ’,'Ỉ’,
‘Ý’,'Ỳ’,'Ỵ’,'Ỷ’,'Ỹ’,'Ù’,'Ú’,'Ụ’,'Ũ’,'Ủ’
);

$text = str_replace($lower, $upper,$text);
return strToUpper($text);
}

function toLower ($text) {
$lower = array(
‘á’,'à’,'ả’,'ã’,'ạ’,'â’,'ấ’,'ầ’,'ậ’,'ẩ’,'ẫ’,'ă’,'ắ’,'ằ’,'ặ’,'ẵ’,'ẳ’,'ê’,'ế’,'ề’,'ệ’,'ể’,'ễ’,
‘ô’,'ố’,'ồ’,'ộ’,'ổ’,'ỗ’,'ơ’,'ớ’,'ờ’,'ợ’,'ỡ’,'ở’,'ư’,'ứ’,'ừ’,'ự’,'ữ’,'ử’,'ị’,'ì’,'í’,'ĩ’,'ỉ’,
‘ý’,'ỳ’,'ỵ’,'ỷ’,'ỹ’,'ù’,'ú’,'ụ’,'ũ’,'ủ’
);

$upper=array(
‘Á’,'À’,'Ả’,'Ã’,'Ạ’,'Â’,'Ấ’,'Ầ’,'Ậ’,'Ẩ’,'Ẫ’,'Ă’,'Ắ’,'Ằ’,'Ặ’,'Ẵ’,'Ẳ’,'Ê’,'Ế’,'Ề’,'Ệ’,'Ể’,'Ễ’,
‘Ô’,'Ố’,'Ồ’,'Ộ’,'Ổ’,'Ỗ’,'Ơ’,'Ớ’,'Ờ’,'Ợ’,'Ỡ’,'Ở’,'Ư’,'Ứ’,'Ừ’,'Ự’,'Ữ’,'Ử’,'Ị’,'Ì’,'Í’,'Ĩ’,'Ỉ’,
‘Ý’,'Ỳ’,'Ỵ’,'Ỷ’,'Ỹ’,'Ù’,'Ú’,'Ụ’,'Ũ’,'Ủ’
);

$text = str_replace($upper,$lower, $text);
return strToLower($text);
}

Hai hàm ở trên dùng để convert tất cả chữ hoa sang chữ thường hoặc chữ thường sang chữ hoa.

Để giải quyết vấn đề trên mình đã làm như sau:


$key_lower=toLower($_POST["keyword"]);
$key_upper=toUpper($_POST["keyword"]);

khi truy vấn mình chỉ cần so sánh với 2 key trên

$sql=”SELECT * FROM tbl_content WHERE content LIKE ‘%$key_lower%’ OR content LIKE ‘%$key_upper%’”;

Với cách này vấn đề của mình đã được giải quyết.Nếu bạn nào có cách hay hơn thì post lên cho mọi người cùng tham khảo nhé

Nguyễn Đức Mạnh

Đếm số người đang online

March 22nd, 2008

Ở các bài trước đã trình bày cách đếm số lượt truy cập hay (số lượng hits ) nay mình trình bày cách để đếm số người online trên website của bạn từ những IP khác nhau. ( Chỉ những IP khác nhau thì số người online  mới tăng lên).

CODE như sau :

#function Online counter
function counter()
{
$rip = $_SERVER['REMOTE_ADDR'];
$sd  = time();
$count = 1;
$maxu = 1;

$file1 = “ip.txt”;
$lines = file($file1);
$line2 = “”;

foreach ($lines as $line_num => $line)
{
if($line_num == 0)
{
$maxu = $line;
}
else
{
//echo $line.”<br>”;
$fp = strpos($line,’****’);
$nam = substr($line,0,$fp);
$sp = strpos($line,’++++’);
$val = substr($line,$fp+4,$sp-($fp+4));
$diff = $sd-$val;

if($diff < 300 && $nam != $rip)
{
$count = $count+1;
$line2 = $line2.$line;
//echo $line2;
}
}
}

$my = $rip.”****”.$sd.”++++\n”;
if($count > $maxu)
$maxu = $count;

$open1 = fopen($file1, “w”);
fwrite($open1,”$maxu\n”);
fwrite($open1,”$line2″);
fwrite($open1,”$my”);
fclose($open1);
//tang count va maxu len cho nhieu
$count=$count+5;
$maxu=$maxu+107;

    return $count; ( 1 )
}

Giải thích:

Hàm trả về số người đang online  nếu bạn để return $count Nếu không để return $count thì khi gọi hàm sẽ lấy được hai giá trị: $maxu ( Số người truy cập nhiều nhất cùng lúc)  và $count ( Số người đang online).

Ở trên mình cho $count=$count +5 và $maxu=$maxu+107 tức là lúc nào cũng có tối thiểu 5 người đang online và lúc nhiều nhất là 107 người.Cái này bạn có thể thay đổi tùy ý.

Download toàn bộ code tại đậy : Online-counter.rar

–Chúc các bạn thành công —

Nguyễn Đức Mạnh