Bài giảng Mã nguồn mở - Chương 4: Ngôn ngữ kịch bản PHP cơ bản

Chuỗi Kí Tự

Các hàm về kiểu chuổi ký tự:

- chop(), trim(), ltrim()

- nl2br(): định dạng HTML, biến ký tự \n thành “

- addslashes() : để biến một chuổi có thể lưu trữ trong CSDL, ví dụ: dấu “ -> \”

- substr($str,$pos,$len) : tách một chuổi con từ một chuổi

 strpos($str,$sub) : vị trí chuổi $sub trong chuổi $str

 str_replace($rep,$with,$str) : thay $rep bằng $with trong $str

 explode($separator,$str) : tách chuổi $str thành các chuổi con dựa trên dấu phân cách $separator và lưu kết quả vào mảng, ~ phương thức split của JavaScript. Ngược lại là hàm implode hay join.

 str_repeat(“str”,n) : lặp lại str n lần

 str_chr(“str”,”chr”) : trả về 1 chuỗi bắt đầu từ kí tự chr trong str.

 stristr(“str”,”chr”) : giống str_chr nhưng không phân biệt hoa thường

 strlen(“str”) : chiều dài chuỗi str

 strrev(“str”) : đảo ngược chuỗi str

Ví dụ: Chuẩn hóa một chuổi văn bản(dạng đơn giản) : không có ký tự trống ở hai đầu, giữa 2 từ chỉ có duy nhất một ký tự trống.

$str=“ Thầy Nguyễn Minh Thành “;

echo “
Độ dài chuổi ban đầu “.strlen($str);

function normalize($st){

 $str=trim($str); // cắt các ký tự trống ở hai đầu

 $twoSpace=" "; $oneSpace=" ";

 while(strpos($st,$twoSpace)>0)

 {$st=str_replace($twoSpace,$oneSpace,$st);}

 return $st;}

echo ““Độ dài sau khi chuẩn hóa “.strlen(normalize($str));

?>

 

pptx39 trang | Chia sẻ: trungkhoi17 | Lượt xem: 345 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Mã nguồn mở - Chương 4: Ngôn ngữ kịch bản PHP cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ngôn ngữ kịch bản php cơ bảnGiảng viên : ThS. Nguyễn Minh ThànhEmail : thanhnm@itc.edu.vnChương 4 : Môn Các Hệ Thống Mã Nguồn Mở1Nội DungGiới thiệu về PHPChuỗi kí tựDữ liệu NgàyMảngPhương thức nhận dữ liệu POST & GETHàmMôn Các Hệ Thống Mã Nguồn Mở2Giới Thiệu về PHPMôn Các Hệ Thống Mã Nguồn Mở3I.1 Lịch sử : PHP (Hypertext Preprocessor) là ngôn ngữ script trên server được thiết kế để dễ dàng xây dựng các trang Web động. Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf (1968, GreenLand) sau đó được phát triển bởi nhiều người trải qua nhiều phiên bản. Phiên bản đang phổ biến là PHP 5.0 đã được công bố 7/2004.Phiên bản mới nhất là 5.4.3Ưu điểm :Mã nguồn mở (open source code)- Miễn phí, download dễ dàng từ Internet.- Ngôn ngữ rất dễ học, dễ viết. Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành từ Windows, Linux, UnixTên gọi ban đầu :'Personal Home Page Tools’ Xem : ết Script PHPScript PHP có thể nhúng trược tiếp trong các thẻ HTML.Được đặt trong cặp thẻ Môn Các Hệ Thống Mã Nguồn Mở4 Quá Trình Thông Dịch file PHPMôn Các Hệ Thống Mã Nguồn Mở5Kiểu dữ liệu – Hằng – BiếnMôn Các Hệ Thống Mã Nguồn Mở6a- Kiểu dữ liệu:Integer, Double, Boolean, String, Array và Objectb. Khai báo biến:$tên_biến = giá_trị;$tên_mảng = array();$tên_object= new tên_lớp();c. Khai báo hằng :define(“tên_hằng”, giá_trị);Ví dụ : Kiểu dữ liệu – Hằng – BiếnMôn Các Hệ Thống Mã Nguồn Mở7Các hằng được xây dựng sẵn __LINE____FILE__E_ALLE_NOTICEChuyển kiểu dữ liệu$newint = (int) $var1;$newfloat = (float) $var1;$newstring = (string) $var1;Xuất thông tin biến var_dump($myvariable); Kiểm tra nội dung biến isset($varname) empty($varname) is_int ($varname) is_array ($varname) is_float ($varname) is_null ($varname) is_numeric ($varname) is_string ($varname)Xuất dữ liệu echo $myvariable; printf $myvariable;Các phép toánMôn Các Hệ Thống Mã Nguồn Mở8Phép gán : $biến = biểu_thức;Các phép toán số học : +,-,*,/,%Các phép toán so sánh : ==, !=, >=,,"; echo number_format($x).""; echo number_format($x,2).""; echo number_format($x,2,",",".").""; ?> kết quả: 12345678.4568 12,345,678 12,345,678.46 12.345.678,46pow : lũy thừarand : tạo số ngẫu nhiênround : làm trònMax, min : lấy giá trị lớn, nhỏAbs : trị tuyệt đối Các câu lệnh điều khiểnMôn Các Hệ Thống Mã Nguồn Mở11a- Câu lệnh if. Các cú pháp thông dụng:- if(điều_kiện) { /* nhóm lệnh */}- if(điều_kiện) { /* nhóm lệnh1 */} else { /* nhóm lệnh2 */}- if(điều_kiện) { .. } elseif(điều_kiện_1) {.} elseif(điều_kiện_2) {.} . elseif(điều_kiện_n) {.} else {/* nhóm lệnh cuối cùng */}Các câu lệnh điều khiển (tt)Môn Các Hệ Thống Mã Nguồn Mở12b. Câu lệnh switchCú pháp :switch($biến){ case giá_trị_1: nhóm lệnh 1 ; break; case giá_trị_2: nhóm lệnh 2 ; break; case giá_trị_n: nhóm lệnh n ; break; default : nhóm_lệnh_n+1; }Lưu ý : giá trị của $biến phải là đếm được, rời rạcCác câu lệnh điều khiển (tt)Môn Các Hệ Thống Mã Nguồn Mở13Trong PHP có 4 câu lệnh lặp, trong đó foreach có cách sử dụng đặc sắc so với các NNLT khác. Muốn thoát khỏi vòng lặp : sử dụng lệnh exitc- Câu lệnh while :Cú pháp : while(điều_kiện_lặp) { /* nhóm lệnh */}d- Câu lệnh do while :Cú pháp : do { /* nhóm lệnh */} while(điều_kiện_lặp)e- Câu lệnh for(;;) :Cú pháp : for(khởi_tạo; điều_kiện_lặp; tăng_giảm) { /* nhóm lệnh */}f- Câu lệnh foreach : duyệt qua tất các các phần tử của một mảng, nhất là mảng kết hợp.Chuỗi Kí TựMôn Các Hệ Thống Mã Nguồn Mở141- Khai báo biến $str =“Trường cao đẳng CNTT TpHCM”;$str=”- addslashes() : để biến một chuổi có thể lưu trữ trong CSDL, ví dụ: dấu “ -> \”- substr($str,$pos,$len) : tách một chuổi con từ một chuổi strpos($str,$sub) : vị trí chuổi $sub trong chuổi $str str_replace($rep,$with,$str) : thay $rep bằng $with trong $str explode($separator,$str) : tách chuổi $str thành các chuổi con dựa trên dấu phân cách $separator và lưu kết quả vào mảng, ~ phương thức split của JavaScript. Ngược lại là hàm implode hay join. str_repeat(“str”,n) : lặp lại str n lần str_chr(“str”,”chr”) : trả về 1 chuỗi bắt đầu từ kí tự chr trong str. stristr(“str”,”chr”) : giống str_chr nhưng không phân biệt hoa thường strlen(“str”) : chiều dài chuỗi str strrev(“str”) : đảo ngược chuỗi strChuỗi Kí Tự (tt)Môn Các Hệ Thống Mã Nguồn Mở16Ví dụ: Chuẩn hóa một chuổi văn bản(dạng đơn giản) : không có ký tự trống ở hai đầu, giữa 2 từ chỉ có duy nhất một ký tự trống.Độ dài chuổi ban đầu “.strlen($str); function normalize($st){ $str=trim($str); // cắt các ký tự trống ở hai đầu $twoSpace=" "; $oneSpace=" "; while(strpos($st,$twoSpace)>0) {$st=str_replace($twoSpace,$oneSpace,$st);} return $st;}echo ““Độ dài sau khi chuẩn hóa “.strlen(normalize($str));?>Chuỗi Kí Tự (tt)Môn Các Hệ Thống Mã Nguồn Mở17Danh sách giáo viên:";foreach($arr as $key=>$value) echo ($key+1)."-".$value."";?>Dữ Liệu Ngày – GiờMôn Các Hệ Thống Mã Nguồn Mở18ĐỊnh dạng ngày $mydate = date(“format”,$timestamp);Lấy ngày hệ thống $today = date(“Y/m/d”);Lấy giờ hệ thống $today = time(); hoặc $today = strtotime(“today”);Tạo một ngày chỉ định $importantDate = mktime(h,m,s,mo,d,y);Ví dụ : $importantDate = mktime(0,0,0,1,15,2003); Hoặc $importantDate = strtotime(“January 15 2003”);Dữ Liệu Ngày – GiờMôn Các Hệ Thống Mã Nguồn Mở19Mảng Một ChiềuMôn Các Hệ Thống Mã Nguồn Mở20Khai báo :$n=100;$arr1 = array($n);$arr2 = array(giá_trị_1, giá_trị_2, .., giá_trị_n);$arr3 = range(100,900);// range(“z”, “a”);$arr4 = arrr(hoten=>“Minh Thành”, quequan=>“HCM”, tuoi=>27;IQ=“Rất cao”); // mảng kết hợpCâu lệnh lặp foreach rất hiệu quả khi duyệt mảng kết hợpMảng Một Chiều (tt)Môn Các Hệ Thống Mã Nguồn Mở212- Sử dụngTruy cập một phần tử mảng : $arr[$key]$key có ý nghĩa rộng hơn Index, dùng tham chiếu đến một phần tử của mảng.Ví dụ 1: Tạo mảng gồm 10 phần tử là các số nguyên lấy ngẫu nhiên trong [0,100]. Khởi tạo $key là 0.”;?>Mảng Một Chiều (tt)Môn Các Hệ Thống Mã Nguồn Mở22Sử dụng foreachforeach($arr as $key=>$value){ echo $key .“,”; echo $value.””;}Có thể thay thế key và value bằng tên khác, chẳng hạn $k=>$v, miễn rẳng đảm bảo khai báo : $chỉ_số=>$giá_trị (của phần tử mảng)Mảng Một Chiều (tt)Môn Các Hệ Thống Mã Nguồn Mở23Truy cập một phần tử mảng : sử dụng hàm each()while($item=each($arr)){ echo $item[“key”] .”,”; echo $item[“value”]. “”;}Hàm each() trả về phần tử kế tiếp của mảng. ~ hàm next()- Truy cập một phần tử mảng : sử dụng hàm list()while(list($k,$v)=each($arr)){ echo $k .”,”; echo $v. “”;}Hàm list($k,$v) tách cặp giá trị (key, value) của phần tử có “chỉ số” là $key ra hai biến $k và $vCác Hàm Về MảngMôn Các Hệ Thống Mã Nguồn Mở24Hàm count(), sizeof() : trả về kích thước của mảng+ current()/end() : trả về phần tử đầu tiên/ cuối cùng của mảng+ prev() / next() : trả về phần tử liền trước / kế kiếp + sort() , asort(), rsort(), arsort(): sắp xếp mảng theo value của phần tử+ ksort(), krsort() :sắp xếp mảng theo key của phần tửis_array() kiểm tra mảngPrint_r() hoặc var_dump(): xem nội dung mảngUnset($arr[$key]) : xóa phần tử $key khỏi mảngarray_slice($arrayname,n1,n2) : ngắt mảngarray_merge($array1,$array2,...); : trộn mảngarray_sum($array) : tính tổngarray_unique($names) : loại trùngarray_flip($testarray) : hoán đổi key và valueMôn Các Hệ Thống Mã Nguồn Mở254- Mảng động : Cho mảng gồm 10 số tự nhiên,tạo một mảng con chứa những số lẻ của mảng này, In ra mảng con này.";// In ra mảng con gồm các số lẻ từ mảng $arrfor($i=0;$i"?>Các Mảng Xây Dựng SẵnMôn Các Hệ Thống Mã Nguồn Mở26Các Mảng Xây Dựng SẵnMôn Các Hệ Thống Mã Nguồn Mở27Ví dụ : xuất các thành phần trong mảng $_SERVERforeach($_SERVER as $key =>$value){ echo “Key=$key, Value=$value\n”;}HàmMôn Các Hệ Thống Mã Nguồn Mở281- Cú pháp:function tên_hàm([các_tham_số]) {// Khai báo biến riêng// Câu lệnh PHP[ return giá_trị; ]}[các_tham_số] : các tham số là tùy chọn2- Sử dụng hàmHàm không có giá trị trả về : tên_hàm([các_tham_số]);Hàm có giá trị trả về : tham gia vào các biểu thức, gán giá trị cho biến.Hàm (tt)Môn Các Hệ Thống Mã Nguồn Mở29A- Hàm không có giá trị trả về:”Minh Thành”,diachi=>”HCM”,tuoi=>27,phai=>“Nam”);function display($a){echo “”;reset($a); // trỏ về phần tử đầu tiên của mảng $a;$value=current($a); // phần tử hiện thời của mảng $awhile($value){echo “”.$value.””;$value=next($a); // phần tử kế tiếp của mảng a}echo “”}display($arr);?>Đây là một hàm không trả về giá trị. Hàm display in ra các giá trị của mảngHàm (tt)Môn Các Hệ Thống Mã Nguồn Mở30B- Hàm có giá trị trả về“Minh Thành",diachi=>“HCM");function is_hoten($mang){ // trả về value của phần tử có key là hoten while(list($k,$v)=each($mang)){ if($k=="hoten") {return $v;exit;} }}echo is_hoten($arr);?>Lưu ý : có cần exit khỏi vòng lặp không? Môn Các Hệ Thống Mã Nguồn Mở313- Tầm vực của biến trong trang PHP- Biến chung : được khai báo ngoài phạm vi các hàm, hoặc global ...- Biến riêng: khai báo bên trong hàm (nếu không có global)- Biến $_SESSION : có giá trị toàn cục, cho mọi trang trong phiên. PHP xây dựng sẵn một số biến toàn cục với tên quy ước $_TÊN (in hoa)function tên_hàm($x){global $total; $total=giá_trị;static $index; $index=giá_trị;// các lệnh PHP}4- Tham trị và tham biếnHàm trên được gọi với tham trịHàm sau đây sẽ được gọi với tham biến :function tên_hàm(&$y){ // các lệnh PHP}Phương Thức Truyền Dữ LiệuMôn Các Hệ Thống Mã Nguồn Mở32Đây là những biến toàn cục nhận các giá trị gởi từ client đến server bằng phương thứ Post hay Get.1- Phương thức POST Receive.phpPhương Thức Truyền Dữ Liệu (tt)Môn Các Hệ Thống Mã Nguồn Mở33Trường hợp đặc biệt: nhận dữ liệu gởi từ các checkbox cùng tên:Goi.htmlMộtHaiBaNhan.php$v) echo $v.””;?>Phương Thức Truyền Dữ Liệu (tt)Môn Các Hệ Thống Mã Nguồn Mở342- Phương thức GETGiả sử trang goi.html chứa đoạn mã:Đăng ký Ta gọi: gởi dữ liệu đến trang nhan.php theo phương thức GET, các biến khác được ghép bởi ký hiệu &Nhan.phpChú ý: hoten=Hà Giang, không đóng dấu nháy kép!$_REQUEST : là biến toàn cục thay thế cho $_POST và $_GETMôn Các Hệ Thống Mã Nguồn Mở35V- Sử dụng lại mã PHPSử dụng hàm include(), require() để chèn tệp tin PHP, HTML vào một trang PHP khác. Ngoài ra còn có: include_once(), require_once(), Phân biệt include() và require()include(“tên_tệp”) : nếu tên_tệp không tồn tại thì PHP thông báo lỗi và vẫn tiếp tục thực thi script còn lại.require(“tên_tệp”) : nếu tên_tệp không tồn tại thì PHP dừng thực thi script.Sử dụng include(), require() là một cách tái sử dụng đoạn mã đã viết.Ví dụ :Trang Index.php bao gồm 3 khối:header.inc : gồm các khai báo ...menu.php : gồm các liên kếtfooter.php: gồm các thông tin về website và Môn Các Hệ Thống Mã Nguồn Mở36V- Sử dụng lại mã PHPTrang Index.phpMôn Các Hệ Thống Mã Nguồn Mở37V- Sử dụng lại mã PHPHeader.incbody{margin:10 10 10 60; font: normal 18pt Arial; color:navy}// khai báo để DEMO hiển thị rõ ràng khi trình bày trên LCD Projector!My Page Ví dụ về include()Hôm nay:" . date("d-m-Y")."";?>Footer.phpCopyright by NDTFIT,1995-".date("Y");$copyright.="Khoa Tin học, Trường Đại học Sư phạm";// năm hiện thời tự động cập nhậtecho $copyright;?>Môn Các Hệ Thống Mã Nguồn Mở38V- Sử dụng lại mã PHPMenu.phpTrang chu";$strMenu.="Array";$strMenu.="String";$strMenu.="Post, Get";$strMenu.="Cookie, Session";echo $strMenu;?>Hỏi Đáp ?Môn Các Hệ Thống Mã Nguồn Mở39

Các file đính kèm theo tài liệu này:

  • pptxbai_giang_ma_nguon_mo_chuong_4_ngon_ngu_kich_ban_php_co_ban.pptx