III. XÂY DỰNG HÀM TRONG PHP
2. Hàm trong thư viện hàm
a. Kiểu dữ liệu string
Kiểu dữ liệu string dùng để lưu trữ chuỗi các ký tự. Ví dụ 5.44:
$hoten = “Nguyễn Văn A”; Một số hàm xử lý chuỗi.
- Hàm ltrim(str [,char] ): Xoá khoảng trắng từ bên trái của chuỗi, nếu có tham số char thì sẽ bỏ ln các các ký tự bên trái trong char.
Ví dụ 5.45: Cắt bỏ các ký tự dư thừa bên trái chuổi <?php
$st="aaaa Hoàng Nam"; $st = ltrim($st,'a');
echo $st; //"Hoàng Nam" ?>
- Hàm rtrim( str [,char]):Xoá khoảng trắng từ bên phải của chuỗi, nếu có tham số char thì sẽ bỏ ln các các ký tự bên phải trong char.
Ví dụ 5.46: Cắt bỏ các ký tự dư thừa bên phải <?php
$st="Hoàng Nam aaaa "; $st = rtrim($st,'a');
echo $st; //"Hoàng Nam" ?>
- Hàm trim($st [,char]): Loại bỏ kí tự thừa ở đầu và cuối của câu, nếu có tham số char thì sẽ bỏ luôn các các ký tự bên phải trong char.
Ví dụ 5.47: Cắt bỏ các ký tự dư thừa bên trái và bên phải <?php
$st=" aaaa Hoàng Nam aaaa "; $st = trim($st,'a');
echo $st; //"Hoàng Nam" ?>
- Hàm addslashes($st): định dạng dữ liệu trong chuổi để lưu vào CSDL.
Để lưu chuỗi có các dấu nháy ' hay cặp ", dấu \, dấu \\ thì chúng ta dùng thêm dấu \ vào phía trước chúng như sau: \', \", \\, \\\.
Ví dụ 5.48: Định dạng dữ liệu <?php
$st ="Who're you?";
echo $st."</br>";// Who're you? echo addslashes($st); //Who\'re you? ?>
Vì các dấu nháy khi lưu vào trong CSDL sẽ xuất hiện dấu \ trước các ký tự, khi đọc lên trình duyệt chúng ta cần loại bỏ các dấu đó. Để loại bỏ ta sẽ sử dụng hàm stripslashes() - Hàm stripslashes():
Ví dụ 5.49: Loại bỏ các ký tự. <?php
$st ="Who\'re you?";
echo stripslashes($st); //Who're you? ?>
- Hàm ucfirst($st ) : Viết hoa kí tự đầu tiên của một câu. Ví dụ 5.50: Viết hoa ký tự đầu tiên của một câu.
<?php
$st = 'xin chào!';
echo ucfirst($st); // Xin chào! ?>
- Hàm ucwords($st ): Viết hoa kí tự đầu tiên của mỗi từ. Ví dụ 5.51: Viết hoa kí tự đầu tiên của mỗi từ.
<?php
$st = 'xin chào!';
echo ucwords($st); // Xin Chào! ?>
- Hàm strtolower($st ) : Biến kí tự bất kỳ thành chữ thường. Ví dụ 5.52: Biến kí tự bất kỳ thành chữ thường
<?php
$st = 'Nguyễn Văn A!';
echo strtolower($st); // nguyễn văn a! ?>
- Hàm strtoupper($st ): biến kí tự bất kỳ thành chữ hoa. Ví dụ 5.53: Biến kí tự bất kỳ thành chữ hoa.
<?php
$st = 'nguyễn văn a!';
echo strtoupper($st); // NGUYỄN VĂN A! ?>
- Hàm strlen($st): Kết quả trả về độ dài của câu Ví dụ 5.54: Xuất ra trình duyệt độ dài câu
<?php
$hoten = 'nguyen van a';
echo “Độ dài câu ” . strlen($hoten); //Kết quả trả về là 12 ?>
- Hàm strcmp($str1, $str2): hàm so sánh chuỗi không phân biệt chữ hoa và chữ thường, hàm này trả về kết quả là:
+ = 0: nếu hai chuỗi bằng nhau
+ < 0: nếu chuỗi $str1 nhỏ hơn chuỗi $str2 + > 0: nếu chuỗi $str1 lớn hơn chuỗi $str2 Ví dụ 5.55: So sánh chuỗi
<?php
echo strcmp('chao','Chao'); // kết quả 0
echo strcmp('chao chu','chao anh'); // kết quả là 1 ?>
- Hàm tìm một chuỗi trong 1 chuỗi strstr($st1, $st2) và strchr($s1, $st2): Hàm trả về kết quả là một chuỗi con của chuỗi $st1 được lấy từ vị trí xuất hiện đầu tiên của chuỗi $st2 đến hết chuỗi $st1 nếu tìm thấy chuỗi $st2 trong chuỗi $st1, nếu khơng tìm thấy thì trả về giá trị FALSE.
Ví dụ 5.56: Tìm kiếm chuổi trong chuỗi <?php
$st="ngvana@yahoo.com";
echo strstr($st, "@")."</br>"; //@yahoo.com echo strchr($st, "#"); //
?>
- Hàm tìm vị trí chuỗi con strpos($st1,$st2): Hàm trả về vị trí chuỗi con đầu tiên của cuổi $st2 trong chuỗi $st1, nếu khơng tìm thấy thì kết quả trả về là FALSE
Ví dụ 5.57: Trả về vị trí đầu tiên của chuỗi trong chuỗi <?php
$st="ngvana@yahoo.com";
echo strpos($st,"yahoo"); // vị trí 7 echo strpos($st,"gmail"); //
?>
- Hàm tìm kiếm và thay thế str_replace($st1, $st2, $st): Hàm tìm kiếm chuỗi $st1 trong chuỗi $st, nếu tìm thấy thì thay thế chuỗi $st1 bằng chuỗi $st2 trong chuỗi $st.
Ví dụ 5.58: Tìm kiếm và thay thế yahoo bằng gmail, hotmail bằng gmail <?php
$st=" ngvana@yahoo.com";
echo str_replace('yahoo', 'gmail', $st); // ngvana@gmail.com echo str_replace('hotmail', 'gmail', $st); // ngvana@yahoo.com ?>
- Hàm strrev($st ): Đảo ngược 1 câu. Ví dụ 5.59: Đảo câu ký tự
<?php
echo strrev("Hello world!"); // kết quả trả về là "!dlrow olleH" ?>
- Hàm tách chuỗi explode($ch,$st): Hàm tách chuỗi $st thành nhiều phần tử con bằng cách chỉ định chuỗi tách $ch và gán từng chuỗi con vào các phần tử của mảng
Ví dụ 5.60: Tách chuỗi thành nhiều phần tử mảng <?php
$st="Xin chào tất cả các bạn trong lớp"; $mang = explode(' ',$st);
for($i=0 ; $i<count($mang); $i++)
echo "Từ thứ $i là: ".$mang[$i]."</br>"; ?>
- Hàm kết hợp chuỗi implode($ch, $mang): Hàm kết hợp các phần tử của mảng thành một chuỗi các phần tử khi ráp thành chuỗi sẽ cách nhau bằng một chỉ thị $ch.
Vi dụ 5.61: Nối nhiều phần mảng thành một chuỗi. <?php
$array = array('Xin', 'chào', 'tất', 'cả', 'các', 'bạn'); $st = implode(" ", $array);
echo $st; //Kết quả xuất ra là: Xin chào tất cả các bạn ?>
- Hàm đổi số thành ký tự trong bảng mã ASCII chr(): Ví dụ 5.62: Chuyển mã thành ký tự trong bảng mã ASCII <?php
for($i =15 ;$i<25; $i++)
echo chr($i).","; //kết quả là: , , , , , , , , , , ?>
- Phép tốn nối chuỗi (.) Ví dụ 5.63: Nối hai chuỗi <?php
$ho_dem = 'Nguyễn Văn'; $ten = 'A';
$ho_ten =$ho_dem .' '. $ten; echo $ho_ten; // Nguyễn Văn A ?>
b. Kiểu dữ liệu số
- Hàm giá trị tuyệt đối: abs(x) Ví dụ 5.64: Giá trị tuyệt đố của -5 <?php echo abs(-5); ?> - Hàm làm trịn: round(x[,i]) Ví dụ 5.65: Hàm làm tròn số <?php $so = 1234.56789;
echo round($so,2) // kết quả là 1234.57 ?>
- Hàm làm lấy phân nguyên: floor(x) Ví dụ 5.66: Hàm lấy phần nguyên
<?php
$so = 123.678;
echo floor($so); // kết quả của hàm là 123 ?> - Hàm ex : exp(x) Ví dụ 5.67: Hàm ex <?php echo exp(3); ?>
- Hàm lượng giác: sin(x), cos(x), tan(x) với x radian Ví dụ 5.68: Tính sin, cos, tan của 30 độ
<?php
define("PI",3.14);
echo sin(PI*30/180); // kết quả 0.4997701026431 echo cos(PI*30/180);// kết quả 0.86615809440546 echo tan(PI*30/180); //Kết quả 0.57699640039287 ?>
- Hàm căn bậc hai: sqrt(x) Ví dụ 5.69:
<?php
$so = 36;
echo sqrt($so); // Kết quả là 6 ?>
- Hàm ngẫu nhiên trong khoảng: rand(n1,n2) Ví dụ 5.70: <?php echo rand(10,20); ?> - Hàm logaric: log(x) Ví dụ 5.71: <?php $so = 20;
echo log($so); // kết quả 2.995732273554 ?> - Hàm mũ: pow(a, x) Ví dụ 5.72: <?php $so = 10; echo pow($so,2); ?>
- Hàm pi(): Hàm trả về giá trị là số pi, hàm khơng có tham số. Ví dụ 5.73:
<?php
$so = pi();
?>
- Hàm range(gt1,gt2): Hàm lấy giá trị nguyên trong khoảng gt1… gt2 Ví dụ 5.74:
<?php
foreach (range(0, 12) as $number) {
echo $number; }
echo "</br>";
foreach (range(0, 100, 10) as $number) { echo $number; } ?> - Hàm number_format(): Định dạng số Ví dụ 5.75: <?php $number = 1234.56; echo number_format($number)."</br>"; //1.235 echo number_format($number, 2, ',', ' ')."</br>"; //1 234,46 $number = 1234.5678; echo number_format($number, 2, '.', '');//1234.57 ?>
c. Kiểu dữ liệu ngày, giờ
- Hàm checkdate() kiểm tra ngày nhập vào có hợp lệ khơng? Cú pháp: checkdate ($month , $day, $year )
Trong đó: Hàm trả về giá trị đúng hoặc sai.
$month, $day, $year: là kiểu dữ liệu số nguyên, là tháng ngày năm được nhập vào để kiểm tra. Ví dụ 5.76: <?php $day = 29; $month = 2; $year = 2010;
$kq=checkdate($month, $day, $year); if($kq)
{
echo "Ngay thang hop le"; }
else {
echo "Ngay thang khong hop le"; }
?>
- Hàm date()
Trong đó:
Hàm trả về một chuỗi được qui định bởi chuỗi định dạng $format Nếu $format =
D Ngày có dạng hai chữ số 01- 31 D Thứ trong tuần có 3 ký tự Mon - Sun
J Ngày được có dạng 1-31
L/l Thứ trong tuần được viết đầy đủ Monday - Sunday
N Cho ra số thứ tự của ngày trong tuần (1-7)1: Monday – 7: Sunday W Cho ra số thứ tự ngày trong tuần 0: Monday – 6: Sunday
Z Cho ra ngày thứ máy trong năm(0 - 365) W Cho ra số thứ tự tuần trong 1 năm
F Cho ra tên tháng đầy đủ từ January tới December trong năm M Cho ra tháng từ 01 - 12
M Cho ra tên tháng chỉ có 3 ký tự đầu từ Jan đến Dec N Cho ra tháng từ 1 - 12 Y Cho ra năm có 4 chữ số 2009 Y Cho ra năm có 2 chữ số 09 A Dạng AM và PM A Dạng am và pm G Định dạng đồng hồ 12 H Cho ra giờ 0 -23 h H Cho ra giờ 1- 12h I Cho ra phút (0-59) S Cho ra giây(0-59)
- Lấy giá trị của ngày hiện tại: getdate()
Hàm trả về mảng gồm 11 phần tử để lưu trữ các giá trị(seconds, minutes, hours, mday, wday, mon, year, yday, weekday, month, 0) của ngày tháng năm hiện tại.
Ví dụ: <?php
$today = getdate(); print_r($today); ?>
- Lấy thời gian hiện tại: time()
- Chuyển chuỗi thành thời gian: strtotime()
- Kiểm tra và chuyển thời gian sang đơn vị giây: mktime() - Định dạng thời gian thành só nguyên: idate()