Giới thiệu tổng quan về ngôn ngữ lập trình PHP
- 28-06-2022
- Toanngo92
- 0 Comments
Mục lục
Lịch sử phát triển của ngôn ngữ PHP
Phiên bản | Ngày phát hành | Thông tin |
1.0 | October 1995 | Năm 1994, Rasmus Lerdorf lần đầu tiên tạo ra PHP và đã phát hành nó dưới tên Personal Home Page Construction Kit |
2.0 | April 1996 | Rasmus đã phát hành một môt phiên bản thay đổi hoàn toàn so với trước đó mã là PHP / FI. Vào tháng 6 năm 1996, Phiên bản hoàn thiện PHP / FI 2.0 đã được phát hành. |
3.0 | June 1997 | Phiên bản đầu tiên giống với PHP ngày nay là PHP 3.0. Sự cải thiện của PHP / FI 2.0 là được thực hiện bởi Andi Gutmans và Zeev Suraski của Tel Aviy, Israel. Ngôn ngữ mới này được phát hành dưới dạng PHP và nó loại bỏ hàm ý về giới hạn cá nhân sử dụng. PHP là từ viết tắt của Hypertext Processor |
4.0 | June 1999 | Một công cụ mới đã được giới thiệu ở đây, cải thiện codebase và hiệu suất của phức hợp các ứng dụng. Nó còn được gọi là ‘Zend Engine’. Bên cạnh nhiều cải thiện hiệu suất, PHP 4.0 bao gồm một số các tính năng chính khác. |
5.0 | July 2004 | Core của PHP 5.0 là Zend Engine 2.0 với một mô hình đối tượng mới. PHP 5.0 được giới thiệu mạnh mẽ, hỗ trợ lập trình hướng đối tượng, do đó cho phép người dùng viết có cấu trúc và hỗ trợ code tầng doanh nghiệp. |
6.0 | Bỏ qua | |
7.0 | 2019 | PHP 7.0 là bản phát hành lớn tiếp theo sau PHP 5.0. Nhóm cốt lõi đã thực hiện một số tối ưu hóa trong thông dịch viên, nhưng không giới thiệu JIT biên dịch trên phiên bản PHP 7.0. Tối ưu hóa này chủ yếu được thực hiện để giữ ngôn ngữ tương thích ngược. RAM được tối ưu hóa tăng cường sử dụng và cải tiến cú pháp trong PHP 7.0 hiệu suất đáng kể. |
8.0 | 2020 | PHP 8.0 ra đời với biên dịch JIT và các tính năng mới. |
Giới thiệu về PHP
PHP là một ngôn ngữ kịch bản mã nguồn mở có mục đích chung được sử dụng rộng rãi, phù hợp để phát triển Web. Nó có thể được viết và lưu dưới dạng tập lệnh PHP hoặc được nhúng vào HTML.
PHP có thể được sử dụng để viết kịch bản dòng lệnh và cũng để phát triển phía máy khách
Các ứng dụng Giao diện Người dùng Đồ họa (GUD) độc lập với nền tảng.
Các tính năng của PHP
Một số tính năng quan trọng cũng như được biết đến rộng rãi nhất của PHP như sau:
- PHP tương đối dễ dàng để làm mới và nó cũng có nhiều tính năng nâng cao cho một lập trình viên chuyên nghiệp.
- Xử lý hiệu quả ở phía máy chủ.
- PHP hoạt động trên nhiều hệ điều hành như Linux, Windows và Mac OS X.
- PHP miễn phí và người ta có thể tải xuống từ tài nguyên PHP chính thức: www.php.net
- PHP hỗ trợ nhiều cơ sở dữ liệu như Oracle, MySQL, MS SQL Server, Sybase, v.v.
- PHP có thể tạo động nội dung kiểu HTML, PDF, Text, XML, CSV và nhiều định dạng khác.
- Viết chương trình bằng PHP rất dễ dàng và nhanh chóng, nghĩa là nó mất ít thời gian hơn để xây dựng một ứng dụng.
- Nhiều framework PHP phổ biến như Zend, Laravel và Codelgniter có sẵn cho PHP.
- Triển khai hosting lưu cho PHP dễ dàng và giá thành tốt, phù hợp cả cho ứng dụng nhỏ.
- Triển khai code đơn giản với PHP
PHP Scripts được sử dụng rộng rãi trong ba lĩnh vực sau:
Comand-line scripting
Người dùng có thể chạy một tập lệnh PHP mà không cần bất kỳ máy chủ hoặc trình duyệt nào.
Người dùng chỉ yêu cầu PHP Parser để sử dụng nó theo cách này.
Cách sử dụng này là lý tưởng cho các tập lệnh PHP được thực thi thường xuyên bằng Trình lập lịch tác vụ
Lệnh dòng lệnh (trên Windows) hoặc lệnh cron (trên Unix hoặc Linux).
Người dùng có thể tham khảo cách sử dụng dòng lệnh của PHP để biết thông tin chi tiết.
Server side scripting
Nó là cách sử dụng phổ biến nhất cho PHP. Nó yêu cầu trình phân tích cú pháp PHP – PHP Parser (CGI hoặc mô-đun máy chủ) một máy chủ Web và một trình duyệt Web.
Người dùng phải chạy máy chủ Web có cài đặt PHP và được kết nối.
Người dùng có thể truy cập đầu ra chương trình PHP bằng trình duyệt Web bằng cách xem trang PHP thông qua máy chủ.
Tất cả có thể được chạy cục bộ thông qua các gói phần mềm đặc biệt như XAMPP nếu người dùng đang thử nghiệm với lập trình PHP.
Người dùng có thể sử dụng PHP trên Linux, nhiều biến thể Unix (bao gồm Solaris, HP-UX và OpenBSD), Microsoft Windows, MacOS, RISC OS, và các biến thể khác. Ngày nay, PHP hỗ trợ hầu hết các máy chủ Web, bao gồm Apache, IIS và bất kỳ máy chủ Web nào sử dụng tệp nhị phân Fast CGI PHP, chẳng hạn như Nginx và Lighttpd. PHP hoạt động như một bộ xử lý CGI hoặc như một mô-đun.
Writing Desktop Application
PHP không phải là ngôn ngữ tốt nhất để tạo ứng dụng máy tính để bàn với đồ họa) Giao diện người dùng. Tuy nhiên, nếu người dùng có kiến thức chuyên môn về PHP và muốn sử dụng một số tính năng PHP nâng cao trong các ứng dụng phía máy khách của họ, họ cũng có thể sử dụng PHP.GTK để viết các chương trình như vậy.
PHP.GTK là một phần mở rộng của PHP và không có sẵn trong bản phân phối chính.
Một số công ty và ứng dụng nổi tiếng đang sử dụng PHP:
bao gồm Facebook, Wikipedia, Tumblr, WordPress và Slack, Magento.
Vì vậy, với PHP, người dùng có thể tự do lựa chọn hệ điều hành và máy chủ Web. Hơn nữa, người dùng cũng có thể chọn giữa lập trình hướng thủ tục (POP) và Lập trình hướng đối tượng (OOP), hoặc kết hợp cả hai.
Người dùng có thể tạo đầu ra dưới dạng tệp HTML, hình ảnh và PDF. Việc tạo tự động văn bản như XHTML hoặc bất kỳ tệp XML nào khác có thể được thực hiện bởi PHP, lưu trong hệ thống tệp, thay vì in ra, do đó tạo thành bộ đệm phía máy chủ cho nội dung động.
PHP hỗ trợ nhiều loại cơ sở dữ liệu. Do đó, rất đơn giản để viết một trang Web hỗ trợ cơ sở dữ liệu bằng cách sử dụng các phần mở rộng dành riêng cho cơ sở dữ liệu. Người dùng cũng có thể kết nối với bất kỳ cơ sở dữ liệu nào hỗ trợ tiêu chuẩn Kết nối Cơ sở dữ liệu Mở (Open database connection) (ODC) bằng cách sử dụng tiện ích mở rộng ODBC.
PHP cũng hỗ trợ kết nối với các dịch vụ khác bằng các giao thức như LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (trên Windows) và nhiều giao thức khác.
Người dùng có thể mở các ổ cắm mạng thô và tương tác bằng bất kỳ giao thức nào khác.
PHP hỗ trợ trao đổi dữ liệu phức hợp WDDX giữa hầu như tất cả các ngôn ngữ lập trình Web. PHP hỗ trợ việc khởi tạo các đối tượng Java và có thể sử dụng chúng một cách minh bạch như các đối tượng PHP.
PHP có các tính năng xử lý văn bản hữu ích, bao gồm cả Biểu thức chính quy tương thích Perl (PCRE). Ngoài ra, có nhiều công cụ và tiện ích mở rộng để phân tích cú pháp và truy cập các tài liệu XML. PHP không chỉ chuẩn hóa tất cả các phần mở rộng XML mà còn mở rộng bộ tính năng bằng cách thêm hỗ trợ cho SimpleXML, XMLReader và XMLWriter. Một số phần mở rộng khác được nhóm theo danh mục và theo thứ tự bảng chữ cái có thể có hoặc không được ghi trong tài liệu hướng dẫn sử dụng PHP, chẳng hạn như XDebug.
Ví dụ code PHP:
Tạo 1 file index.php với nội dung như sau
<!DOCTYPE html>
<html>
<head>
<title> Ví dụ </title>
</head>
<body>
<?php
echo "Hello, i'm toanngo92!";
?>
</body>
</html>
Người dùng mới làm quen với PHP được khuyến nghị nên bắt đầu trực tiếp từ PHP 8.0 để tránh chi phí di chuyển liên quan đến các phiên bản trước. Những cải tiến mới trong PHP 8.0 sẽ cho phép mã sạch hơn và hiệu suất tốt hơn ngay từ đầu.
Người dùng phải lưu ý rằng nếu nhiều mã được viết trong các phiên bản cũ hơn, thì việc chuyển sang PHP 8.0 sẽ đòi hỏi nhiều nỗ lực hơn.
Nếu người dùng biết trước rằng sẽ có một số dependency không tương thích với PHP 8.0 trong quá trình phát hành, thì nên cố gắng thay thế các phụ thuộc đó ngay lập tức. Tuy nhiên với trong thời điểm viết bài viết này, lời khuyên của mình vẫn là sử dụng 7.4 và chờ cộng đồng update với các dự án đang maintain.
Khác biệt giữa PHP và JavaScript
Sự khác biệt chính giữa cả hai là PHP được thiết kế cho kịch bản phía máy chủ, trong khi JavaScript dành cho kịch bản phía máy khách. Trong PHP, mã được thực thi trên máy chủ và sau đó, HTML được tạo và gửi đến máy khách. Máy khách nhận được kết quả của việc thực thi tập lệnh, nhưng logic mã bên dưới không được tiết lộ. Điều này rất khác với JavaScript phía máy khách được xử lý trong chính trình duyệt (máy khách). Nhà phát triển có thể cấu hình máy chủ Web để xử lý tất cả các tệp HTML bằng PHP mà không lộ mã nguồn, gây ảnh hưởng tới bảo mật các nghiệp vụ logic cũng như bảo mật tài khoản.
Bài tập
Bài 1:
Bạn hãy tách các ký tự số của một số nguyên dương n bất kỳ (0<n<1000) và in ra màn hình.
Bài 2: Viết chương trình tung đồng xu
* Input :
* + Coin
* + Khi code được server xử lý -> Coin = rand(0,1) -> hàm rand sẽ trả về 0 hoặc 1
* + 0 = mặt sấp
* + 1 = mặt ngửa
* Output:
* + Ngẫu nhiễn sấp hoặc ngửa
Bài 3: Định nghĩa ra một mảng 2 chiều,chiều 1 là index, chiều 2 là associative array lưu trữ sinh viên bao gồm các thuộc tính:
-name string
-age int
-gender bool
-mark float
Cú pháp ví dụ:
$lst_sv = [ ['name' => 'nguyen van A' , 'age' => 18 ..] , ['name' => 'nguyen van B' , 'age' => 20 ..] ]
Đáp ứng ít nhất 3 bài.
Bài 4 ( có thể đọc trước object để giải quyết bài này): sử dụng class để định nghĩa đối tượng sinh viên, khởi tạo mảng lưu trữ 3 đối tượng sinh viên, duyệt mảng và in ra bảng tr td với các thuộc tính như bài 3.
Bài 5 (có thể đọc trước bài form handling để giải quyết bài này):
Viết một file php có 3 form nhập liệu yêu cầu người dùng nhập vào 3 giá trị điểm, khi bấm nút tính toán, hiển thị ra giá trị sau khi người dùng nhập liệu
Bài 6:
/**
* Tính tổng số nguyên chẵn tử 1 -> n
* Input :
* + Khai báo n
* Output:
* + Kết quả của biểu thức S
*
* Algorithm :
* . Khai báo biến $n
* . Khai báo biến $total = 0
* . Sử dụng vòng lặp for
* . ở biểu thức 3 của vòng lặp for gán $i = $i + 2
* . Cộng dồn biến $total với $i
*/
Bài 7: Xác định số phần tử của chuỗi
Bài 8:
/**
* Xác định thời gian cách đây 29 ngày và in ra giao diện ( document cách sử dụng datetime)
*/
-
Viết PHP để lấy thông tin cấu hình và phiên bản của PHP (phpinfo())
-
Viết PHP script để in một chuỗi cho trước (sử dụng print và echo)
-
Viết PHP script để tạo một form đơn giản để nhận và hiển thị tên đăng nhập.
-
Lấy địa chỉ Client IP trong PHP.
-
Lấy thông tin liên quan đến trình duyệt bạn đang sử dụng (User Agent) trong PHP.
-
Viết PHP script để lấy tên file hiện tại.
-
Lấy URL trong PHP.
-
Đổi màu kí tự đầu tiên của từ trong PHP
-
Viết PHP script để kiểm tra xem trang là được gọi từ https hay http
-
Redirect trong PHP (sử dụng hàm header)
-
Email Validation trong PHP
-
Tạo bảng trong PHP để hiển thị chuỗi và giá trị
-
Viết PHP script để lấy source code của một trang web (curl)
-
Viết PHP script để lấy thông tin chỉnh sửa lần cuối cùng (Last Modified) của một file
-
Viết PHP script để đếm số dòng trong một file
-
In phiên bản PHP hiện tại
-
Viết PHP script để dừng thực thi chương trình trong một khoảng thời gian đã cho
-
Sử dụng toán tử tam phân kiểm tra một số là lớn hơn 10, 15 hay 20
-
Viết PHP script để lấy thư mục gốc
-
Lấy thông tin Hệ điều hành mà PHP đang chạy trên
-
Viết PHP script để lấy thời gian chỉnh sửa lần cuối cùng của trang hiện tại
-
Hiển thị tất cả các số nằm trong khoảng (200, 250) mà chia hết cho 4