Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

doc 35 trang phuongnguyen 6170
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docgiao_trinh_lap_trinh_ung_dung_web_voi_ngon_ngu_php.doc

Nội dung text: Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP

  1. MỤC LỤC I. TỔNG QUAN 3 1. Web Server 3 II. Ngôn ngữ PHP 3 1. Kiến trúc họat động cơ bản của DYNAMIC WEB 4 a. Client 4 b. Server 5 c. MIDDLE WARE 5 III. PHP và Webserver APACHE 5 1. Cài đặt PHP và Apache 5 2. Cấu hình web server APACHE 10 IV. Nhập môn lập trình php 10 1. Code PHP trong HTML 10 a. Nhúng code PHP vào trong web 10 b. Thẻ PHP 10 c. Sử dụng dấu ; 11 d. Ghi chú trong php 11 2. Sử dụng Biến 11 a. Biến Form 11 b. Khai báo biến 11 c. Kiểu dữ liệu của biến 12 d. Bíên dạng biến thiên 12 e. Biến hằng trong PHP 12 f. Tầm họat động của biến 12 g. Biến mảng 12 h. Chuyển đổi biến 15 i. Kiểm tra kiểu dữ liệu biến 15 3. Tóan tử trong PHP 15 a. Tóan tử số học 15 b. Tóan tử ghép chuỗi 15 c. Tóan tử kết hợp 15 d. Tóan tử So sánh 16 e. Tóan tử logic 16 f. Toán tử ? 16 g. Tóan tử error 16 4. Cấu trúc ngôn ngữ 17 a. Phát biểu if 17 b. Phát biểu else 17 c. Phát biểu elseif 18 d. Phát biểu switch 18 e. Phát biểu vòng lặp While 18 f. Phát biểu vòng lặp do .while 19 g. Phát biểu vòng lặp for 19 h. Thoát khỏi cấu trúc 19 5. Tạo hàm trong PHP 20 a. Khai báo hàm 20 b. Gọi hàm 20 c. Truyền tham số 20 d. Hàm có giá trị trả về 21 e. Tham biến 22 6. Hàm thư viện 22 a. Hàm xử lý số 22 b. Hàm xử lý chuỗi 23 c. Hàm xử lý thời gian 25 d. Các hàm thư viện khác 27 V. Lập trình PHP với cở sở dữ liệu 28 1. Kết nối cơ sở dữ liệu 28
  2. 2. đóng kết nối cơ sở dữ liệu 28 3. Truy vấn cơ sở dữ liệu 28 a. Mở 1 recordset 28 b. Đếm số lượng records 28 c. Đọc từng record từ recordset 29 VI. Điều khiển session 31 VII. Điều khiển Cookie 31 VIII. Truy vấn dữ liệu file trong PHP 32 1. Mở file 32 2. Đọc nội dung trên file 33 3. Ghi dữ liệu vào file 33 4. Đóng file 34 5. Kiểm tra file 34 6. Kiểm tra dung lượng của file 35 7. Xóa file 35 Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 2
  3. I. TỔNG QUAN 1. Web Server Chức năng của Web Server có vẻ không phức tạp mấy. Nó chỉ ở tại chỗ, chạy trên nền của HĐH, lắng nghe các yêu cầu ai đó trên Web gởi đến, sau đó trả lời những yêu cầu này, và cấp phát những trang Web thích ứng. Thực tế thì nó không quá đơn giản như vậy, bởi vì nhiệm vụ của Web Server là phải cung cấp tính ổn định cho môi trường Web cho nên đòi hỏi này phải được đáp ứng một cách rất nghiêm túc. Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ thường sử dụng Apache và IIS (Internet Information Server của Microsoft). INTERNET INFORMATION SERVER (IIS) được gắn liền với môi trường Windows và nó là thành phần không thể thiếu của Active Server Pages (ASP). Nếu bạn chọn con đường của Microsoft thì có lẽ bạn đã hiểu rõ về IIS. Có một sự tích hợp nhất định giữa một ngôn ngữ lập trình và một Web Server. Cũng vậy, PHP được tích hợp rất tối đối với IIS. Trước đây, có một số vấn đề cần phải bàn về tính ổn định của PHP/IIS với việc truyền tải lớn, nhưng PHP và IIS cũng đã được cải thiện liên tục nên việc này không còn đáng phải bận tâm. APACHE là một kiểu mẫu Web Server rất phổ biến. Giống như Linux, PHP, MySQL nó là một dự án nguồn mở. Không có gì ngạc nhiên khi người ta thấy Apache được hỗ trợ rất tốt trên môi trường Unix, nhưng chỉ khá tốt trong Windows. Apache tận dụng được tính năng của third-party. Bởi vì đây là nguồn mở nên bất kỳ ai có khả năng đều có thể viết chương trình mở rộng tính năng của Apache. PHP hoạt động với tư cách là một phần mở rộng của Apache, và người ta gọi là một module của Apache. Apache có tính ổn định và tốc độ đáng phải nói. Tuy nhiên, cũng có một số sự phàn nàn về nó là không hỗ trợ công cụ đồ hoạ trực quan, điều có thể giúp người ta làm việc một cách dễ dàng hơn. Bạn phải thực hiện các thay đổi đối với Apache bằng cách sử dụng dòng lệnh, hoặc sử các tập tin text trong folder chương trình Apache. Nếu lần đầu đến với Apache thì bạn sẽ gặp một chút lạ lẫm. Mặc dù Apache chỉ làm việc tốt trên Unix, nhưng cũng có những phiên bản chạy tốt trên hệ Windows. Không một ai, kể cả các nhà phát triển Apache đề nghị rằng Apache nên được chạy trên một server Windows bận rộn. Nếu bạn quyết định chọn HĐH Windows cho server thì bạn nên sử dụng IIS. Nếu bạn thử nghiệm ứng dụng trên Windows và sau đó đem upload và chạy trên Unix/Apache của nhà cung cấp host thì cũng không hề hấn gì, ứng dụng của bạn vẫn chạy ngon lành. II. Ngôn ngữ PHP PHP tốc độ nhanh, dễ sử dụng vì 3 lý do sau khi so ánh tốc độ giữa các ngôn ngữ lập trình Web. Thứ nhất, ứng dụng viết bằng C chạy nhanh nhất. Thứ hai, công việc lập trình C khá là phức tạp, và sẽ ngốn nhiều thời gian hơn. Thứ ba, việc so sánh giữa các ngôn ngữ là một điều khó khăn. Có thể nói rằng PHP cũng nhanh như các ngôn ngữ khác. Chắn chắn bạn sẽ chọn loại tiện dụng nhất? Bạn sẽ cảm thấy rằng PHP có đầy đủ các đặc tính như khả năng, cấu trúc và dễ sử dụng. Xin nói thêm cú pháp PHP tuyệt hơn ASP hay JSP. PHP cung cấp các tính năng mạnh mẽ để thực hiện ứng dụng Web một cách nhanh chóng. PHP cho phép chạy trên nhiều hệ điều hành. Như đã trình bày ở phần kiến trúc web, PHP có thể chạy trên WindowsNT/2000/2003 và Unix với sự hỗ trợ của IIS và Apache. Nhưng ngoài ra nó có thể chạy trên một số các platform khác như Netscape, Roxen, hay một vài thứ khác. Như chúng ta biết ASP có thể chạy trên Unix, ColdFusion có thể chạy trên Solaris và Linux, JSP có thể chạy trên khá nhiều loại platform. Đối với PHP, nó có thể chạy tốt trên những platform hỗ trợ các chủng loại trên. PHP cho phép truy cập bất kỳ loại CSDL nào. Ứng dụng của bạn dự định sẽ truy cập những loại dữ liệu dịch vụ nào? LDAP, IMAP mail server, DB2, hay XML parser hay WDDX Bất kể bạn cần đến thứ gì thì PHP cũng sẵn sàng hỗ trợ thông qua các hàm được xây dựng sẵn nó sẽ làm công việc của bạn trở nên rất dễ dàng và tiện lợi. sẽ rõ. Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 3
  4. PHP Luôn được cải tiến & cập nhật. Nếu như bạn cảm thấy bỡ ngỡ đối với việc phát triển nguồn mở, bạn có lẽ sẽ ngạc nhiên đối với chất lượng của loại phần mềm này. Có hàng ngàn những chuyên gia lập trình xuất sắc đợi sẵn và họ sẵn sàng bỏ thời gian ra để tạo hững phần mềm tuyệt vời và hầu như miễn phí. Đối với ngôn ngữ thịnh hành như PHP thì ắt hẳn là các rất nhiều các nhà lập trình đang thực hiện phát triển nó hằng ngày. Sự thật có một việc rất ấn tượng là nếu như bạn có một sự cố kỹ thuật, bạn có thể gởi email đến một nhà phát triển PHP các chi tiết sự cố đó. Chỉ trong vòng vài giờ bạn sẽ nhận được sự trả lời thoả đáng. Khi PHP được phổ biến, nó đã trở thành một hiện tượng của ngôn ngữ lập trình. Nó giúp cho việc bổ sung số lượng lớn các hàm chức năng một cách dễ dàng. Nếu như ngôn ngữ đã có sẵn nhiều hàm đặc thù cho công việc thì bạn sẽ đỡ tốn công hơn cho việc lập trình của mình. PHP được hướng dẫn kỹ thuật bất cứ lúc nào. Hầu hết các ngôn ngữ đều hỗ trợ active mailing list (hiểu nôm na là danh sách mail những thành viên trực chiến hỗ trợ kỹ thuật) và các development site (trang web hỗ trợ giải quyết kỹ thuật). PHP cũng không ngoại lệ. Nếu bạn gặp phải sự cố - gặp những lỗi trong chương trình và không tìm ra cách khắc phục - sẽ có hàng trăm người có tên trong danh sách mail luôn sẵn lòng kiểm tra và khắc phục sự cố cho bạn. Bộ nguồn mở PHP thật sự đã tạo ra một tình cảm của cả cộng đồng. Khi bạn gặp phải khó khăn đối với nó thì lúc nào cũng có những đồng môn chia sẻ nỗi lòng đó và giúp bạn khắc phục nhằm đem lại niềm vui cho bạn. PHP hoàn toàn miễn phí. Bạn không ngại gì về vấn đề bản quyền khi bạn sắm một máy vi tính và cài lên đó những phần mềm như Linux, Apache, PHP vì tất cả đều miễn phí. 1. Kiến trúc họat động cơ bản của DYNAMIC WEB Kiến trúc căn bản nhất để trang Dynamic Web hoạt động được là nó phải làm việc trên mô hình client/server. Nôm na là mỗi thứ client hay server đều đảm đương một chức năng riêng để hoàn thành công việc chung đó là cho ra một trang Web động. Các bạn có lẽ đã quen thuộc với chương trình WinWord để soạn văn bản, nó có thể hoạt động độc lập trên bất kỳ máy tính nào chẳng cần quan tâm tới cái gì là client hay cái gì là server. Ứng dụng Web thì khác hẳn, phải có một mô hình server có thể là một máy tính làm server thôi, nhằm tập trung hoá việc xử lý dữ liệu. Còn các client, còn được hiểu nôm na là máy tính của người sử dụng phải được nối mạng với server, giả sử các máy này truy cập vào một Website chẳng hạn, thì có nghĩa họ đã truy cập vào server, sau đó lấy dữ liệu từ server về thể hiện lên máy mình. Cùng một lúc có thể có hàng trăm người (client) truy cập vào cùng một Website được xử lý tập trung trên server, tương tự như một đám trẻ xúm nhau giành phần của mình từ một cái bánh. a. Client Các ứng dụng mà bạn phát triểân trên nền MySQL và PHP sử dụng tính năng single client đó là trình duyệt Web. Tuy nhiên, không phải đây chỉ là ngôn ngữ duy nhất để phát triển ứng dụng Web. Đối với những ứng dụng phức tạp đòi hỏi multi-client hoặc cần các tính năng bảo trì (chúng ta sẽ bàn tính năng này sau), thì ứng dụng Java applet sẽ hữu dụng cho việc này. Chỉ trừ trường hợp bạn cần sử dụng ứng dụng thời gian thực như ứng dụng chat chẳng hạn, thì bạn Java Applet mới cần thiết. Ở đây chúng ta không bàn tới lập ứng dụng cho chuyện tán gẫu mà chỉ tập trung vào ứng dụng duyệt Web nên không đụng chạm gì tới Java Applet cả. Như bạn đã biết ngôn ngữ khởi thuỷ cho việc duyệt Web là HTML. HTML cung cấp hàng tá những thẻ lệnh (Tag) cho phép thể hiện trang Web theo nhiều kiểu cách khác nhau. Nếu bạn chưa có kiến thức cơ sở về HTML thì có thể chạy ra ngoài mua ngay một quyển sách hoặc download trên internet xuống các bài học hướng dẫn. Bạn không nên bỏ ra quá nhiều thời gian để học về HTML. Ngoài HTML ra các trình duyệt Web còn cho phép các add-in hỗ trợ nhiều thứ khác như RealPlayer, Flash, Shockwave, hoặc hỗ trợ về Javascript hoặc XML. Nhưng ở đây chúng tôi chỉ tập trung trên những gì cần thiết cho sự hội nhập của bạn – đó là HTML. Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 4
  5. b. Server Hầu hết các ứng dựng Web đều hoạt động tập trung trên Server. Một ứng dụng đặc trưng gọi là Web Server sẽ đảm trách việc giao tiếp với các trình duyệt. Một Cơ sở dữ liệu (CSDL) trên Server sẽ lưu trữ tất cả những thông tin đáp ứng yêu cầu cho công việc của ứng dụng Web. Kế tiếp, bạn cần phải có một ngôn ngữ làm vai trò "chú bé liên lạc" giữa Web Server và CSDL trên server. Ngôn ngữ này cũng thực hiện các công việc xử lý thông tin đến và đi từ Web Server. c. MIDDLE WARE Ngôn ngữ lập trình Web (PHP, ASP, JSP). DATABASE SERVER (MySQL, SQLserver ). WEB SERVER (Apache, IIS) INTERNET WEB BROWSER(Internet Explorer, Netscape) Và dĩ nhiên là các thứ này sẽ chẳng hoạt động được nếu như không chạy trên một Hệ Điều Hành (HĐH). Các thứ như Web Server, Ngôn ngữ lập trình, CSDL phải hoạt động tốt trên một HĐH nào đó. III. PHP và Webserver APACHE 1. Cài đặt PHP và Apache Bạn Dbl click vào file easyphp1-8_setup.exe để tiến hành cài đặt PHP và Webserver Apache, cửa sổ đầu tiên xuất hiện như hình dưới : Bạn chọn English, click OK, cửa sổ kế tiếp xuất hiện như hình dưới : Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 5
  6. Click phím next , cửa sổ kế tiếp xuất hiện như hình dưới : Đánh dấu check vào mục I Accept the agreement, click phím next cửa sổ kế tiếp xuất hiện như hình dưới : Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 6
  7. Click phím next, cửa sổ kế tiếp xuất hiện như hình dưới : Click phím next cửa sổ kế tiếp xuất hiện như hình dưới : Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 7
  8. Chọn YES, click phím next cửa sổ kế tiếp xuất hiện như hình dưới : Click phím next cửa sổ kế tiếp xuất hiện như hình dưới : Click chọn nút Install, click phím next cửa sổ kế tiếp xuất hiện như hình dưới : Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 8
  9. Đợi chương trỉnh cài đặt xong, cửa sổ kế tiếp xuất hiện như hình dưới : Chọn Finish để hòan tất chuơng trình cài đặt. Để khởi động chương trình ban vào click nút Start – Program – EasyPHP – EasePHP, cửa sổ sau xuất hiện như hình dưới : Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 9
  10. Bạn click vào nút Apache chọn Start. 2. Cấu hình web server APACHE Sau khi bạn start Webserver , bạn kiểm tra trên thư mục cài đặt có 1 thư mục WWW , đây là thư mục mà sau này sẽ chứa tòan bộ ứng dụng web của bạn. Trên taskbar bạn sẽ thấy 1 hình chữ E màu đen. Click chuột fải vào chữ E này chọn Configuration - Apache. Bạn sẽ thấy 1 file có tên httpd.conf xuất hiện. Bạn tìm đến mục Listen và thêm vào dòng lệnh sau : Listen [địa chỉ ip của webserver]:80 rồi lưu file này lại. Lệnh này dùng để cho phép các client trong mạng có thể truy xuất vào webserver để duyệt trang web. Bạn tạo thử 1 trang index.php có nội dung bất kỳ và lưu vào trong thư mục WWW. Client có thể xem trang này thông qua đị chỉ internet sau : http://[địa chỉ ip WebServer]/index,php. Nếu trên máy Webserver thì bạn có thể truy xuất qua địa chỉ IV. Nhập môn lập trình php 1. Code PHP trong HTML a. Nhúng code PHP vào trong web Code PHP trong HTML nằm trong cú pháp sau : Vi du trang PHP Để sử dụng thẻ này bạn phải khai báo trong file PHP.INI lệnh sau : short_open_tag=On Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 10
  11. Thẻ định dạng XML : là thẻ có thể sử dụng với văn bản XML : Thẻ Script : Trong trừong hợp sử dụng PHP như 1 script như javascript hay vbscript ta dùng cú pháp sau : echo “Hello World”; Thẻ ASP : trong trường hợp khai báo PHP như 1 phần trong trang ASP thì dùng cú pháp : Để sử dụng thẻ này bạn phải khai báo trong file PHP.INI lệnh sau : asp_tags=On c. Sử dụng dấu ; Sau 1 dòng lệnh PHP luôn kết thúc bằng dấu ; vì vậy các lệnh sau đều hợp lệ : echo “ Hello!”; echo “Goodbye”; Hay echo “ Hello!”; echo “Goodbye”; d. Ghi chú trong php Để ghi chú 1 nhóm lệnh ta dùng cú pháp /* */ /* echo “hello world”; echo “GoodBye”; */ Để ghi chú 1 dòng lệnh thì dùng dấu // hay # // echo “hello world”; echo “GoodBye”; # đây là chú thích 2. Sử dụng Biến a. Biến Form Khi 1 form gửi ra trị từ dưới client về sever ta có thể lấy ra giá trị của các biến này theo cách gửi tương ứng Gửi bằng phưong thức POST : echo “UserName là : “ . $HTTP_POST_VARS[“txtUser”]; echo “Password là : “ . $HTTP_POST_VARS[“txtPass”]; Gửi bằng phưong thức GET : echo “UserName là : “ . $HTTP_GET_VARS[“txtUser”]; echo “Password là : “ . $HTTP_GET_VARS[“txtPass”]; Bạn có thể viết tắt 2 trường hợp trên như sau với điều kiện khai báo thông số : register_globals=On trong PHP.INI echo “UserName là : “ . $txtUser; echo “Password là : “ . $txtPass; Dấu . chính là tóan tử ghép chuỗi bạn có thể viết lại theo cách sau PHP vẫn cho kết quả tương tự vì PHP luôn hiểu sau dấu $ là 1 biến cho dù trong chuỗi: echo “UserName là : $txtUser”; echo “UserName là : $txtPass”; b. Khai báo biến 1 biến khi khai sinh bạn đặt cho biến 1 tên. Tên biến không khỏang trắng, chỉ dùng các ký tự a-z, 0-9 và dấu _. PHP phân biệt chữ thường và chữ hoa. PHP không yêu cầu bạn khai báo biến trước khi sử dụng chúng. Ta nên khai báo biến và gán chó chúng 1 giá trị bạn đầu <?php $soluong=300; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 11
  12. $dongia=200; $tongtien=$soluong*$dongia; echo “Thành tiền : $tongtien”; ?> c. Kiểu dữ liệu của biến PHP hỗ trợ 5 kiểu dữ liệu sau : Integer : Sử dụng hầu hết cho giá trị dữ liệu kiểu số . Double : Sử dụng hầu hết cho giá trị dữ liệu kiểu số thực String : Sử dụng hầu hết cho giá trị dữ liệu kiểu chuỗi Array: Sử dụng hầu hết cho giá trị dữ liệu là mảng có phần tử cùng kiểu dữ liệu Object : Sử dụng hầu hết cho giá trị dữ liệu là đối tượng của lớp Bạn có thể chuyển đổi kiểu dữ liệu như ví dụ sau : d. Bíên dạng biến thiên Biến dạng biến thiên là 1 loại biến đặc biệt, loại biến này cung cấp cho bạn cách tự động thay đổi tên của biến. "; $$qty=40; echo "soluong: ".$soluong; ?> Kết quả là biến soluong = 40 e. Biến hằng trong PHP Biến hằng trong PHP phải đượ khai báo bằng chữ hoa bằng từ khóa define "; echo "Total: ".$qty*$price*RATE; ?> f. Tầm họat động của biến PHP cung cấp 2 loại vùng họat động cho biến : Biến cấp cục bộ là biến khai báo bên trong 1 function biến được khai sinh khi function được gọi và chết đi khi function kết thúc, biến trong function nào thì chì được sử dụng trong function đó mà thôi Biến cấp script hay biến tòan cục là biến khai báo trong 1 script php bên ngoài các function, nó có thể được sử dụng trong tất cả các function của PHP trên trang web tương ứng. g. Biến mảng Biến mảng là biến dữ liệu lưu trự tập hợp gồm nhiều biến , mỗi biến được xem như là 1 phần tử trong mảng chứa 1 giá trị bất kỳ. Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 12
  13. Khai báo và gán giá trị có 1 mảng Sử dụng vòng lặp for để truy cấp biến mảng: bạn sử dụng vòng lặp này khi biết trước được số phần tử của mảng. "; ?> Sử dụng vòng lặp while để truy cấp biến mảng: bạn sử dụng vòng lặp này khi không biết trước được số phần tử của mảng là bao nhiêu . Ta dùng hàm each kết hợp với vòng lặp while "; while ($i=each($Items)) { echo $i["key"]; echo " "; echo $i["value"]." "; } ?> Trong đó khóa key là vị trí của phần tử mảng, value là giá trị của phần tử mảng tương ứng với phưuơng thức thứ key. Ngòai ra ta cũng có thể dùng hàm list để tách phần tử mảng vào biến Trong trường hợp biến mảng items có 2 cột dữ liệu là key và value, ta có thể đọc từng phần tử vào 2 biến tương ứng như sau : "; while (list($k,$v)=each($Items)) { echo $k; echo "       "; echo $v." "; } ?> Trong đó biến $k lấy giá trị ví trí của phần tử, biến $v là giá trị của phần tử thứ $k. Mảng 2 chiều : khai bao và duyệt các phần tử của mảng 2 chiều <?php Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 13
  14. $products=array(array("TIR","Tires", 100),array("COR","Concord", 1000),array("BOE","Boeing", 5000)); for ($row=0;$row "; } $products[0][0]="A"; $products[0][1]="A1"; $products[0][2]=10; $products[1][0]="B"; $products[1][1]="B1"; $products[1][2]=20; $products[2][0]="C"; $products[2][1]="C1"; $products[2][2]=30; for ($row=0;$row "; } ?> Sắp xếp mảng 1 chiều : sau khi khao báo và gán giá trị bạn nên sắp xếp dữ liệu trong mảng trước khi in ra bằng hàm sort(). "; } ?> Sắp xếp dữ liệu 2 cột : trong trường hợp mảng lưu trữ 2 cột ta dùng hàm asort() để sắp xếp dữ liệu theo cột nhất định nào đó : 100,"Tires"=>10, "Van"=>5); asort($products); while ($row=each($products)) { echo $row["key"]; echo "\t\t"; echo $row["value"]; echo " "; } ?> Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 14
  15. h. Chuyển đổi biến Hàm gettype(biến) : trả về 1 chuỗi cho biết biến đó thuộc kiểu dữ liệu nào. Nếu không xác định được thì trả về chuỗi “unknown type”. Hàm settype(biến, kiểu dữ liệu) : ép biến đó trở về kiểu dữ liệu tương ứng "; settype($a,"double"); echo "now, dattype of a:".gettype($a)." "; ?> i. Kiểm tra kiểu dữ liệu biến is_array(biến) : Kiểm tra biến là kiểu dữ liệu array hay không. is_double(biến) : Kiểm tra biến là kiểu dữ liệu double hay không. is_float(biến) : Kiểm tra biến là kiểu dữ liệu double hay không. is_real(biến) : Kiểm tra biến là kiểu dữ liệu real hay không. is_long(biến) : Kiểm tra biến là kiểu dữ liệu long hay không. is_int(biến) : Kiểm tra biến là kiểu dữ liệu int hay không. is_integer(biến) : Kiểm tra biến là kiểu dữ liệu integer hay không. is_string(biến) : Kiểm tra biến là kiểu dữ liệu string hay không. is_object(biến) : Kiểm tra biến là kiểu dữ liệu object hay không. 3. Tóan tử trong PHP a. Tóan tử số học Tóan tử Tên Ví dụ + Cộng $a+$b; - Trừ $a-$b; * Nhân $a*$b; / Chia $a/$b; % Modulo $a%$b b. Tóan tử ghép chuỗi Dấu chấm “.” Dùng để làm tóan tử ghép chuỗi hay c. Tóan tử kết hợp Tóan tử Sử dụng Tương tự + = $a+ =$b $a=$a+$b; + + $a+ + $a=$a+1; - = $a- =$b $a=$a-$b; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 15
  16. - - $a - - $a=$a-1; * = $a* =$b $a=$a*$b; / = $a/ =$b $a=$a/$b; % = $a% =$b $a=$a%$b; . = $a. =$b $a=$a.$b; d. Tóan tử So sánh Tóan tử Sử dụng Ý nghĩa = = $a= =$b $a bằng $b = = = $a= = =$b $a bằng và cùng kiểu dữ liệu $b ! = hay $b $a khác $b $a>$b $a lớn hơn $b = $a> =$b $a nhỏ hơn hay bằng $b e. Tóan tử logic Tóan tử Sử dụng Ý nghĩa ! !$a Phủ định && hay and $a>5 && $b 5 and $b $b kiện true hay cả hai điều kiuện true ngược lại trả về false f. Toán tử ? Tóan tử ? thay thế cho phát biểu điều khiển If và else với 1 câu lệnh bên trong. Ví dụ 10) $c=$a; else $c=$b; echo "c:$c"; ?> Ta có thể thay thể cấu trúc if else trên bằng tóan tử ? như sau 10)?$a:$b; echo "c:$c"; ?> g. Tóan tử error Trong trường hợp biếu thức hay phép tóan phát sinh lỗi trên trang web, nếu bạn muốn không xuất ra thông báo lỗi này thì bạn dùng tóan tử error là dấu @ <?php $a=10; $c=0; $b=$a/$c; echo "b:".$b; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 16
  17. ?> Ví dụ trên sẽ xuất ra lỗi : Warning : Division by zero in BẠn muốn không hiện lỗi này thì sửa lại như sau : 4. Cấu trúc ngôn ngữ a. Phát biểu if Phát biểu if với 1 điều kiện, nếu điều kiện là true thì khôi lệnh trong phát biểu if được thực thi, điều kiện phải được khai báo trong cặp dấu () như sau : $b) echo $a+$b ?> Nếu khối lệnh chỉ có 1 dòng thì bạn áp dụng như ví dụ trên, tuynhiên khối lệnh mà từ 2 dòng trở lên bạn phải đặt trong cặp dấu { } như ví dụ sau $b) { echo $a . “ ”; echo $b } ?> b. Phát biểu else Phát biểu else luôn là trường hợp của phát biểu if với 1 điều kiện, nếu điều kiện là true thì khôi lệnh trong phát biểu if được thực thi còn nếu ngược lại thì nếu điều kiện là false thì khối lệnh trong phát biểu else được thực thi. $b) echo $a + $b else echo $a - $b ?> Tương tụ trong trường hợp phát biểu if nếu trong khối lệnh của phát biểu else có nhiều hôn 1 dòng lệnh thì bạn phải đặt khối lệnh này trong cặp dấu {} $b) { echo $a . “ ”; echo $b; } Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 17
  18. else { $a++; echo $a; } ?> c. Phát biểu elseif Trong trường hợp có nhiều hơn 2 điều kiện tùy chọn thì bạn phải chọn phát biểu elseif =10 && $soluong 20 && $soluong 30 && $soluong d. Phát biểu switch Là phát biểu cho phép lựa chọn 1 trong nhiều giá trị cho trước Nếu đúng điều kiện case bạn cần khai báo phát biểu break nhằm thóat khỏi phát biểu switch, trong trường hợp bạn không khai báo break trong mỗi phát biểu case thì PHP vẫn so sánh tiếp các điều kiện trong các case kế tiếp. Nếu các điều kiện case không thỏa thì PHP sẽ thực thi khối lệnh trong phát biểu default. e. Phát biểu vòng lặp While Cú pháp : while(điều kiện) { Khối lệnh; } Phát biểu vòng lặp này cho phép thực thi khối lệnh bên trong cho đến khi điều kiện của while là true. 0) { echo " ".$qtty." ".$qtty*$price." "; $qtty ; } Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 18
  19. ?> f. Phát biểu vòng lặp do .while Cú pháp : do { Khối lệnh; } while(điều kiện) Phát biểu vòng lặp này cho phép thực thi khối lệnh bên trong cho đến khi điều kiện của do while là true. Phát biểu này sẽ lặp ít nhất 1 lần ".$qtty." ".$qtty*$price." "; $qtty ; } while($qtty>0) ?> g. Phát biểu vòng lặp for Cú pháp : for(giá trị đầu,điều kiện,giá trị lặp) { Khối lệnh; } Vòng lặp này cho phép bạn thực thi khối lệnh theo số lần lặp qui định trước. ".$qtty*$rate." "; echo $qtty*$price." "; } ?> h. Thoát khỏi cấu trúc Để thóat khỏi vòng lặp hay phát biểu điều khiển nào đó bạn dùng từ khóa exit , khi php gặp lệnh này nó sẽ thót ngay ra khỏi phát biểu mà không cần biểu điều kiện vẫn còn thỏa trong vòng lặp hay so sánh. 0) { echo " ".$qtty." "; echo $qtty*$price." "; $qtty ; if ($qtty==3) exit; } ?> Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 19
  20. 5. Tạo hàm trong PHP a. Khai báo hàm Cú pháp : function tên_hàm() { Khối lệnh } Ví dụ : function chao() { echo “Here is my function ” ; echo “Have a good day” ; } Hay function tinhtoan($x) { $a=10; $x=$a ; Return $x; } Chú ý là bạn không được dùng những từ khóa của php để đặt tên cho hàm. Tên hàm đặt giống như đặt tên biến: không khỏang trắng, chỉ dùng ky tự a-z,0-9 và dấu gạch duới. b. Gọi hàm Gọi hàm do người dùng định nghĩa cũng giống như sử dụng hàm có sẵn trong PHP ví dụ như ta gọi 2 hàm trên như sau : Chao() $giatri=tinhtoan(20) c. Truyền tham số Hầu hết các hàm thường sử dụng 1 vài tham số đượ truyền từ bên ngoài vào, tham số truyền cvào không định nghĩa kiểu dữ liệu mà tùy thuộc vào kiểu dữ liệu mà tham số đó nhận : tham số có 2 dạng 1 tham số bắt buộc và tham số tùy chọn. Ví dụ sau sử dụng tham số bắt buộc là tham số mà khi gọi hàm bạn phải truyền vào cho nó nếu không có tham số truyền vào php sẽ báo lỗi "; reset($data); $value=current($data); while($value) { echo " $value \n"; $value=next($data); } echo " "; } ?> User Defined Functions Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 20
  21. Ví dụ sau sử dụng tham số bắt buộc và tùy chọn (là tham số mà khi gọi hàm bạn có thể truyền vào hay không đều được. "; reset($data); $value=current($data); while($value) { echo " $value \n"; $value=next($data); } echo " "; } ?> User Defined Functions with optional parameters "; create_tables($myarray); echo " "; create_tables($myarray,1,2,3); echo " "; ?> d. Hàm có giá trị trả về Nếu bạn khai báo hàm có giá trị trả về, bạn có thể sử dụng phát biểu return ứng với giá trị trả về cuối hàm, nếu bên dưới phát biểu return còn 1 số câu lệnh khác, những câu lệnh này sẽ không được dịch ie khi gặp lệnh return coi như hàm chấm dứt. <?php function ReturnNo($data,$i) { $total=0; for($j=0;$j<$i;$j++) { $total+=$data[$j]; } return $total; } Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 21
  22. ?> User Defined Return Functions with optional parameters e. Tham biến Khi truyền 1 giá trị cho 1 hàm thông qua 1 biến nếu bạnmuốn lấy giá trị trả về cho biến đó thì bạn dùng kỳ thuất tham biến bằng các thêm tóan tử & vào biến trên hàm nhận giá trị tới. ByValue in Functions "; echo "Last value: ".$value; ?> 6. Hàm thư viện a. Hàm sử lý số abs(số) : lấy trị tuyệt đối echo $abs = abs(-4.2)." "; // $abs = 4.2 (double/float) echo $abs2 = abs(5)." "; // $abs2 = 5 (integer) echo $abs3 = abs(-5)." "; // $abs3 = 5 (integer) sqprt(trị số) : Lấy căn bậc 2 echo sqrt(9)." "; // 3 echo sqrt(10)." "; // 3.16227766 fmod(số chia, số bị chia) : chia lấy phần dư $x = 5; $y = 3; echo $r = fmod($x, $y) ." "; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 22
  23. min(danh sách trị số) : lấy giá trị nhỏ nhất trong danh sách echo min(2, 3, 1, 6, 7)." "; // 1 echo min(array(2, 4, 5))." "; // 2 max(danh sách trị số) : lấy giá trị lớn nhất trong danh sách echo max(1, 3, 5, 6, 7)." "; // 7 echo max(array(2, 4, 5))." "; // 5 floor(trị số) :làm tròn xuống echo floor(4.3)." "; // 4 echo floor(9.999)." "; // 9 echo floor(-3.14)." "; // -4 ceil(trị số): làm tròn lên echo ceil(4.3)." "; // 5 echo ceil(9.999)." "; // 10 echo ceil(-3.14)." "; // -3 round(trị số,n) : làm tròn đến n số lẻ: n là số dương làm tròn phần thập phân, n là số âm làm tròn phần nguyên. echo round(3.4)." "; // 3 echo round(3.5)." "; // 4 echo round(3.6)." "; // 4 echo round(3.6, 0)." "; // 4 echo round(1.95583, 2)." "; // 1.96 echo round(1241757, -3)." "; // 1242000 echo round(5.045, 2)." "; // 5.05 echo round(5.055, 2)." "; // 5.06 coutn(danh sách) : đếm số phần tử có giá trị $a[0] = 1; $a[1] = 3; $a[2] = 5; echo $result = count($a)." "; // $result == 3 $b[0] = 7; $b[5] = 9; $b[10] = 11; echo $result = count($b)." "; // $result == 3 rand() : cho kết quả là 1 con số ngẫu nhiên echo rand()." "; echo rand()." "; echo rand(5, 15); // cho so ngau nhieu tu 5- 15 b. Hàm sử lý chuỗi. Ltrim(chuỗi): cắt bỏ các khỏang trắng bên trái chuỗi. Chop(chuỗi): cắt bỏ các khỏang trắng bên phải chuỗi. Trim(Chuỗi): cắt bỏ các khỏang trắng bên phải và bên trái chuỗi. <?php $total=1000 echo $total . ltrim(" Wellcome") ; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 23
  24. echo chop("Wellcome ").$total ; echo $total. trim(" Wellcome ").$total ; ?> printf(chuỗi): in ra 1 chuỗi trên trang web với định dạng cho trước Lọai Diễn giải b Biên dịch như số nguyên và in dạng binary c Biên dịch như số nguyên và in dạng character d Biên dịch như số nguyên và in dạng decimal f Biên dịch như số thực double và in dạng float o Biên dịch như số nguyên và in dạng octal s Biên dịch như chuỗi và in dạng string x Biên dịch như số nguyên và in dạng hexadecimal ký tự từ a-f X Biên dịch như số nguyên và in dạng hexadecimal ký tự từ A-F "; printf("Total amount of order làm tròn 1 số lẻ : %.1f", $total); echo " "; printf("Total amount of order làm tròn 2 số lẻ: %.2f", $total); echo " "; ?> strupper(chuổi) : biến đỗi thành chữ hoa strlower(chuỗi) : biến đổi thành chữ thường ucfirst(chuỗi) : biến đổi ký tự đầu của câu viết hoa ucword(chuỗi) : biến đổi ký tự đầu của từ viết hoa Định dạng chuỗi : khi trong chuỗi của bạn muốn lưu ký tự đặc biết như dấu nháy’ dấu \ thì bạn phải thêm vào trướ các dấu này 1 dấu \.Hàm AddSlashes(chuỗi) sẽ tự động tìm những ký tự lạ trên để thêm vào dấu \. Ngược lại hàm StripSlashes(chuỗi) sẽ lọai trừ các chuỗi đã có sẵn dấu \ ra khỏi chuỗi. "; $chuoi=StripSlashes("wel'lcom?e to \my site"); echo $chuoi; ?> Explode(chuỗi xác định,chuỗi cần tách) : tách 1 chuỗi thành nhiều chuỗi con lưu trữ trong 1 mảng. implode(chuỗi xác định,mảng chứa chuỗi cần nhập) : Nhập 1 mảng chứa các chuỗi con thành 1 chuỗi. "; $chuoinhap=implode("@",$mail_array); echo $chuoinhap; ?> strtok(chuỗi tách,chuổi phân tách) : Tách chuỗi con đầu tiên tại vị trí chuỗi phân tách. "; $giatri=strtok($chuoi," "); Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 24
  25. echo $giatri." "; while($giatri!="") { $giatri=strtok(" "); echo $giatri . " "; } ?> substr(chuỗi,vị trí, số ký tự) : trích ra n ký tự bắt đầu tại vị trí chuỗi "; echo substr($str,1)." "; //lấy từ vị trí số 1 cho đền hết chuỗi echo substr($str,-9) ." "; // bỏ 9 ký tự cuối echo substr($str,0,4) ." "; //lấy 4 ky tự đầu tiên echo substr($str,4,-13) ." "; //bỏ 4 ký tự dầu và 13 kỳ tự cuối ?> strlen(chuỗi): cho biết chiều dài chuỗi. strstr,strchr,stristr(chuỗi 1, chuỗi 2) : nếu tìm thấy chuỗi 2 đầu tiên trong chuỗi 1 thì trả về 1 chuỗi bắt đầu từ chuỗi 2 đến hết chuỗi 1, còn không tìm thấy thì trả về false strrchr(chuỗi 1, chuỗi 2) : nếu tìm thấy chuỗi 2 cuối cùng trong chuỗi 1 thì trả về 1 chuỗi bắt đầu từ chuỗi 2 đến hết chuỗi 1, còn không tìm thấy thì trả về false. "; echo strchr($str,"c")." "; echo strrchr($str,"e")." "; echo stristr($str,"er")." "; ?> strpos(chuỗi 1, chuỗi 2 ) : trả về vị trí tìm thấy đầu tiên chuổi 1 trong chuỗi 2, nếu không tìm thấy thì trả về -1 "; echo "is:".strpos($str,"is")." "; echo "e:".strrpos($str,"e")." "; ?> str_replace(chuỗi 1, chuỗi 2, chuỗi 3) : thay thế chuỗi 1 bằng chuỗi 2 trong chuỗi 3, hàm sẽ thay thế tất cả các chuỗi 1 tìm thấy. Để khống chế thay thế từ 1 vị trí nhất định nào đó trong chuỗi 3 trở về cuối chuỗi thì dùng hàm substr_replace(). "; echo str_replace("job","book",$str)." "; echo substr_replace($str,"assp.",41)." "; ?> c. Hàm xử lý thời gian Date(mẫu hiễn thị) Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 25
  26. echo date("jS F Y"); Bảng định dạng thời gian Code Diễn giải a Buổi sáng /chiều bằng 2 ký tự thuờng am/pm A Buổi sáng /chiều bằng 2 ký tự hoa AM/PM d Day (01-31) ngày trong tháng 2 ký tự D Day (Mon-Sun) ngày trong tuần F Tháng trong năm với tên tháng đầy đủ g Hour (1-12) giờ trong ngày không kèm 0 nếu 1 ký tự G Hour (0-23) giờ trong ngày không kèm 0 nếu 1 ký tự h Hour (01-12) giờ trong ngày gồm 2 ký tự H Hour (00-23) giờ trong ngày gồm 2 ký tự i Minutes(01-59) phút bao gồm 2 ký tự j Day (01-31) ngày trong tháng không kèm 0 nếu 1 ký tự l Day (Monday-Sunday) ngày trong tuần đầy đủ L Năm nhuận trả về 1, năm thường trả về 0 m Month(01-12) tháng bao gồm 2 ký tự M Month(Jan-Dec) tháng tên viết tắt n Month(01-12) tháng không kèm 0 nếu 1 ký tự s Second(01-59) giây bao gồm 2 ký tự S thêm vào 2 ký tự như :st,nd,rd,th theo sau dạng ngày 2 ký tự t Trả vể tổng số ngày trong tháng w Day(0-6) : 0=Sunday .6=Sartuday y Năm định dạng 2 con số Y Năm định dạng 4 con số z Ngày trong năm địnhtheo số (0-365) checkdate(tháng, ngày,năm) : kiểm tra giá trị nhập vào có phải là ngày hay không nếu đúng là ngày thì True (1) còn không là False echo checkdate(12, 31, 2000)." "; echo checkdate(2, 29, 2001)." "; DATE_FORMAT(ngày tháng, mẫu hiển thị) : thuờng dùng hàm n2y trong câu select để định dạng lại ngày tháng khi lấy dữ liệu từ MySQL. Select DATE_FORMAT(OrderDate, ‘%m-%d-%Y’) From orders Bảng định dạng thời gian cho hàm DATE_FORMAT Code Diễn giải %M Tháng đầy đủ %W ngày trong tuần đầy đủ %D ngày trong tháng dạng số có thứ bậc (1 st) %Y Năm 4 con số %y Năm 2 con số %a Ngày trong tuấn viết tắt %d ngày trong tháng 2 con số %e ngày trong tháng không kèm số 0 vơi 1 ký tự %m Tháng 2 con số %c Tháng không kèm số 0 với 1 ký tự %b Tháng viết tắt %j Ngày thứ mấy trong năm (1-365) %H giờ 2 con số (00-23) %k Giờ không kèm số 0 với 1 ký tự %h Giờ 2 con số (1-12) %i Phút không kèm số 0 với 1 ký tự %r giờ dầy đủ với định dạng 12 giờ (hh:mm:ss AM/PM) %T giờ dầy đủ với định dạng 12 giờ (hh:mm:ss) Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 26
  27. %S Giây 2 con số %s Giây không kèm số 0 với 1 ký tự %p AM hay PM %w Ngay trong tuan dạng số (0-6) d. Các hàm thư viện khác ereg(mẫu kiểm tra, giá trị) : kiểm tra giá trị có đúng theo mẫu cho trước hay không Kiểm tra ngày tháng nhập vào có đúng theo mẫu cho trướ hay không $date="1999-12-3"; //kiem tra ngay thang co dung mau nhu sau hay khong if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) { echo "$regs[3].$regs[2].$regs[1]"; } else { echo "Invalid date format: $date"; } Kiểm tra email nhập đúng hay sai $email=”hoasen@yahoo”; if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $email)) { echo "That is not a valid email address. Please return to the" ." previous page and try again."; exit; } print(chuỗi): in 1 chuỗi ra màn hình "); print "print() also works without parentheses."; print "This spans multiple lines. The newlines will be output as well"; print "This spans\nmultiple lines. The newlines will be\noutput as well."; print "escaping characters is done \"Like this\"."; // You can use variables inside of a print statement $foo = "foobar"; $bar = "barbaz"; print "foo is $foo"; // foo is foobar // You can also use arrays $bar = array("value" => "foo"); print "this is {$bar['value']} !"; // this is foo ! // Using single quotes will print the variable name, not the value print 'foo is $foo'; // foo is $foo // If you are not using any other characters, you can just print variables print $foo; // foobar ?> Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 27
  28. V. Lập trình PHP với cở sở dữ liệu 1. Kết nối cơ sở dữ liệu PHP cung cấp hàm kết nối cơ sở dữ liệu có cú pháp như sau : $link = mysql_connect ("localhost", "root", ""); if(!$link) { echo "not connection!"; exit; } echo "connection ok!"; mysql_select_db("intershop", $link); Cách khác : $link = mysql_connect ("localhost", "root", "") or die ("Could not connect to MySQL Database"); echo "connection ok!"; mysql_select_db("intershop", $link); 2. đóng kết nối cơ sở dữ liệu Sau khi khai thác CSDL bạn nên đóng lạ thông qua cú pháp sau : $link = mysql_connect ("localhost", "root", "") or die ("Could not connect to MySQL Database"); echo "connection ok!"; mysql_select_db("Northwind ", $link); . mysql_close($link); 3. Truy vấn cơ sở dữ liệu a. Mở 1 recordset Ta dùng hàm mysql_query() với các tham số sau : cú pháp : mysql_query(chuỗi sql language) mysql_query(chuỗi sql language, biến kết nối DB) b. Đếm số lượng records Ta dùng hàm mysql_num_rows() <?php $link = mysql_connect ("localhost", "root", "") or die ("Could not connect to MySQL Database"); echo "connection ok!"; mysql_select_db("Northwind", $link); $sql=”select * from customers”; $rec=mysql_query($sql,$link); $i= mysql_num_rows($rec); echo “tong so record : $i”; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 28
  29. mysql_close($link); ?> c. Đọc từng record từ recordset Ta dùng hàm mysql_fetch_array() để đọc từng record trong biến $rec, nếu không tồn tại record nào trong $rec thì hàm sẽ khôngthực hiện: MA KH TEN CONG TY TEN KH "; mysql_select_db("northwind", $link); $sql="select * from customers"; $result=mysql_query($sql,$link); $i= mysql_num_rows($result); echo "tong so record : $i"; if ($i!=0) { while ($row=mysql_fetch_array($result)) { //lay gia tri tung field $makh= $row["CustomerID"]; $tenct=$row["CompanyName"]; $tenkh=$row["ContactName"]; echo " $makh "; echo " $tenct "; echo " $tenkh "; } } ?> BẠn cũng có thể đọc từng record bằng hàm mysql_fetch_row như sau : MA KH TEN CONG TY TEN KH "; Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 29
  30. mysql_select_db("northwind", $link); $sql="select * from customers"; $result=mysql_query($sql,$link); $i= mysql_num_rows($result); echo "tong so record : $i"; if ($i!=0) { while ($row=mysql_fetch_row($result)) { //lay gia tri tung field $makh= $row[0]; $tenct=$row[1]; $tenkh=$row[2]; echo " $makh "; echo " $tenct "; echo " $tenkh "; } } ?> Bạn cũng có thể dùng hàm mysql_fetch_object để lấy từng record như sau : MA KH TEN CONG TY TEN KH "; mysql_select_db("northwind", $link); $sql="select * from customers"; $result=mysql_query($sql,$link); $i= mysql_num_rows($result); echo "tong so record : $i"; if ($i!=0) { while ($row=mysql_fetch_object($result)) { //lay gia tri tung field $makh= $row->CustomerID; $tenct=$row->CompanyName; $tenkh=$row->ContactName; echo " $makh "; echo " $tenct "; echo " $tenkh "; } } Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 30
  31. ?> VI. Điều khiển session Để khởi tạo 1 session trên trang web bạn dùng lệnh session_start(). Để lấy id của 1 session hiện hành bạng dùng lệnh $myvalue=session_id(); Để khai báo 1 biến session bạn dùng lệnh session_register("biến") Trên trang khác để lấy giá trị của biến session đã khai báo ban thực hiện "; echo "email: $semail. "; echo "Fullname: $sfullname. "; ?> Để kiểm tra biến session nào còn hiệu lực hay không thì dùng lệnh session_is_registered Để Hủy bỏ 1 biến session còn hiệu lực dùng lệnh session_unregister "; echo "email: $semail. "; echo "Fullname: $sfullname. "; $result=session_is_registered("suid"); if($result==1) { session_unregister("suid"); } ?> Để xóa bỏ tất cả biến session còn hiệu lực dùng lệnh session_unset(), nếu bạn muốn kết thúc tất cả các biến session thì dùng lệnh session_destroy() VII. Điều khiển Cookie Tạo mới 1 biến cookie dùng cú pháp : setcookie(“tên biến”,giá trị) Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 31
  32. Lấy giá trị của 1 biến cookie thực hiện như sau : "; ?> VIII. Truy vấn dữ liệu file trong PHP 1. Mở file Trong PHP để mở 1 file trên máy chủ bạn dùng hàm fopen có cu pháp sau : $biến=fopen(tên file với đầy đủ đuờng dẫn, chế độ mở file) Bảng chế độ mở file Mode Diễn giải r Mở file dưới dạng Read-only r+ Mở file dưới dạng Read-Write w Mở file dưới dạng Write-only Mở file dưới dạng Write-Read. Nếu file này tồn w+ tại, nội dung sẽ bị xóa, nếu file không tồn tại chúng sẽ được tạo ra Mở file dưới dạng Append. Ghi dữ liệu từ phần a cuối file trở đi, trong trường hợp file không tồn tại chúng sẽ được tạo ra Mở file dưới dạng Append. Ghi dữ liệu từ đầu a+ file trở đi, trong trường hợp file không tồn tại chúng sẽ được tạo ra Bạn có thể mở file thông qua Ftp hay HTTP Để kiểm tra việc mở file có được hay không ta dùng cơ chế bẫy lỗi bằng cách dùng dấu @ trước biến $f Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 32
  33. 2. Đọc nội dung trên file Để đọc nội dung trên 1 file bạn dùng hàm fgets(biến file, số ký tự) Để biết được nội dung file đã hết hay chưa bạn dùng hàm feof(), hàm này cho giá trị true khi con trỏ đến cuối file. "; exit; } else { echo " Orders Processing "; while (!feof($ft)) { $order=fgets($ft,10); echo $order." "; } } echo "Read file successfull!"; ?> Để đọc tòan bộ nội dung fiel bạn nên dùng hàm readfile() "; exit; } else { echo " Orders Processing "; echo $order; } echo " Read file successfull!"; ?> 3. Ghi dữ liệu vào file Muốn ghi file thì thư mục chưa các file cần ghi phải cấp quyền modify cho user Internet Guest Account. Để ghi nội dung vào file bạn dùng hàm fwrite(biến file, nội dung) "; echo "Please check your system and try again!"; } else Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 33
  34. { $f="Your Orders have been write in this time"; fwrite($ft,$f); echo "Write to file successfull!"; } ?> Khi ghi dữ liệu ra file bạn có thể dúng \t để nhảy tab hay \n để xuống hàng "; echo "Please check your system and try again!"; } else { $p=10; for($q=1;$q 4. Đóng file Sau khi mở file để đọc hay ghi bạn file đóng file lại bằng hàm fclose(biến file) . Hàm trả về true nếu đóng file thành công, còn không trả về false. 5. Kiểm tra file Khi mở file thông thường b5n nên kiểm tra xem file đó có tồn tại hay không bạn nên dùng hàm file_exists() "; exit; } else { $order=readfile($f); echo " Orders Processing "; echo $order; } echo " Read file successfull!"; ?> Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 34
  35. 6. Kiểm tra dung lượng của file Khi mở file để biết được dung lượng của file đó bao nhiêu. Hàm filesize() cho biết tổng số byte của file cần mở. "; exit; } else { $size=filesize($f); echo "Size of Orders Processing "; echo "is $size byte(s) "; } ?> 7. Xóa file Để xó hẳn 1 file trên máy chủ bạn dùng unlink() với đầy đủ đường dẫn của file cần xóa. Tuy nhiên bạn nên kiển tra trước file đó có tồn tại hay không trườc rồi mới xóa. "; exit; } else { $ok=unlink($f); if ($ok) echo "File have been deleted!"; else echo "File could not delete!"; } ?> Giáo trình Lập trình ứng dụng Web với ngôn ngữ PHP 35