SlideShare a Scribd company logo
1 of 28
Download to read offline
PHP Có thể Làm gì? 9 Thứ thú vị có thể
làm với PHP
PHP chủ yếu được sử dụng để làm các trang web động, nhưng có nhiều thứ
thú vị hơn bạn có thể làm với PHP.
Trong bài viết này, bạn sẽ thấy 9 ví dụ thú vị về cách bạn có thể sử dụng
PHP để lập trình bên cạnh việc làm các trang web động.
Chắc chắn bạn sẽ ngạc nhiên khi thấy PHP có thể được sử dụng làm nhiều
thứ hay như thế.
• Nhân tiện, nếu bạn thật sự muốn bắt đầu với PHP, Khóa học Lập trình
Web với PHP trong 3 tháng là một cách giúp bạn nhanh chân hơn.
Vậy bạn có thể làm gì với PHP?
Hãy cùng tìm hiểu ngay bên dưới đây.
Mục lục:
1. Tại sao nên sử dụng PHP?
2. PHP dùng để làm gì?
3. PHP có thể Xác thực thông tin người dùng (bao gồm xác minh hai
bước)
4. PHP có thể thao tác với các CSDL dễ dàng
5. PHP có thể lập trình Backend
6. PHP có thể tạo ứng dụng Real-time
7. PHP có thể tạo Theme và Plugin WordPress
8. PHP có thể tạo REST và WEB Service
9. Tạo hệ thống chạy ngầm với PHP (PHP Daemon)
10. Tạo hình ảnh với PHP
11. PHP có thể tạo Kịch bản hệ thống
12. Kết luận
1. Tại sao nên sử dụng PHP?
PHP là một ngôn ngữ kịch bản (Scripting Languages) hiện đại được sử
dụng trong gần 80% trang web (Số liệu 20/09/2019), tăng từ 72% vào năm
2010.
Tỷ lệ ngôn ngữ lập trình dùng cho Server-side (Nguồn W3Tech)
Có nhiều lý do khác nhau tại sao PHP lại trở thành một ngôn ngữ lập trình web
phổ biến như vậy, nhưng có 3 lý do chính sau:
• PHP dễ học hơn nhiều ngôn ngữ khác
• PHP thích hợp các trang web thiên về nội dung và hỗ trợ dữ liệu từ
Backend
• PHP cung cấp cho bạn một bộ công cụ hoàn chỉnh để bạn làm việc.
Thực tế là PHP được rất sử dụng rộng rãi cũng có nghĩa là bạn có thể tìm
kiếm hướng dẫn học tập, group, diễn đàn thảo luận rất dễ dàng.
Vấn đề chính chống lại PHP là hiệu năng và hiệu suất tổng thể kém nhiều
ngôn ngữ khác ở nhiều trường hợp.
Chắc chắn, có thể bạn đã hy vọng PHP sẽ có hiệu suất cao như C hoặc C
++.
Tuy nhiên, trừ khi bạn đang làm việc trên các hệ thống quan trọng, phức
tạp, đồ sộ hoặc hệ thống nhúng trong đó hiệu suất là ưu tiên hàng đầu.
Còn đa phần các trường hợp, hiệu suất của PHP đã là quá đủ.
Hơn nữa, Ở phiên bản PHP7, PHP có hiệu suất rất tốt nếu so sánh với các
ngôn ngữ tương tự.
Và trên thực tế, PHP có thể nhanh hơn 382% so với Python, nhanh hơn 378% so
với Perl và nhanh hơn 195% so với Ruby. (Bạn có thể xem thử nghiệm hiệu
suất tại đây)
2. PHP sử dụng để làm gì?
PHP có thể làm gì?
PHP có thể làm nhiều loại nhiệm vụ khác nhau.
Ví dụ:
Hãy thử nghĩ rằng bạn cần triển khai một HTTP Backend hoặc REST
Service. Trong trường hợp đó, bạn muốn sử dụng một ngôn ngữ:
• Được hỗ trợ tốt bởi các máy chủ web được sử dụng nhiều nhất như
Apache
• Tích hợp hoàn hảo với các cơ sở dữ liệu SQL như MySQL
• Có thể xử lý văn bản, chuỗi và dữ liệu số dễ dàng
Trong trường hợp này, sử dụng PHP là hoàn hảo. Trên thực tế, PHP thường
là lựa chọn đầu tiên cho các dự án như vậy.
Thử xem biểu đồ sau:
Ví dụ ứng dụng đo nhiệt độ bằng PHP
Đây là một đồ thị HTML5 mà tôi đã tạo ra tại nơi làm việc. Nó hiển thị nhiệt
độ không khí trong 24 giờ qua.
Bản thân đồ thị được tạo ra với một thư viện canvas có tên là RGraph,
nhưng các giá trị nhiệt độ thực tế được tính toán, lưu trữ và truy xuất
bởi PHP.
Nhưng làm thế nào để bạn biết dự án của bạn phù hợp với ngôn ngữ PHP?
Đơn giản, bạn sẽ chỉ cần hỏi 3 câu hỏi sau:
• Dự án của tôi sẽ sử dụng các thế mạnh và chức năng của PHP?
• Tôi có thể chạy dự án này từ Web Server hoặc với trình thông dịch
PHP Command line không?
• Dự án này có đòi hỏi hiệu suất và hiệu quả rất cao?
Nếu bạn trả lời "CÓ" cho hai câu hỏi đầu tiên và "KHÔNG" cho câu hỏi cuối
cùng, thì PHP là một ứng cử viên hàng đầu.
Bây giờ, lan man cũng đã đủ rồi.
Đã đến lúc để xem một số ví dụ thực tế về những gì bạn có thể làm với
PHP, bắt đầu với một thứ bạn chắc chắn bạn sẽ sử dụng: Xác thực thông
tin người dùng.
3. PHP có thể Xác thực thông tin người dùng (bao gồm xác
minh hai bước)
Xác thực thông tin người dùng là một trong những nền tảng của bảo mật web.
Nếu bạn đang xây dựng trang web có phần tài khoản người dùng, rất có thể
bạn cần triển khai xác thực người dùng.
Có rất nhiều kỹ thuật khác nhau mà bạn có thể sử dụng, từ xác thực tên
người dùng / mật khẩu theo cách đơn giản đến việc xác minh hai bước
(hoặc phức tạp hơn)
Và đoán xem...
Với PHP, bạn có thể thực hiện bất kỳ kỹ thuật nào trong số này.
Xác thực tên người dùng và mật khẩu
Thực hiện xác thực tên người dùng và mật khẩu dễ dàng như việc so sánh
hai chuỗi.
PHP có thể dễ dàng lưu trữ và truy xuất các cặp tên người dùng và mật
khẩu trên cơ sở dữ liệu, sử dụng mã hóa cấp cao nhất mà không cần cố gắng
gì nhiều.
Vậy trong thực tế việc này có thể làm thế nào? Hãy xem các chức năng
đăng nhập và add_account sau đây được của tôi:
/* Xác thực Tên người dùng và mật Khẩu */
public function login($name, $password)
{
/* Kiểm tra độ dài của chuỗi */
if ((mb_strlen($name) < 3) || (mb_strlen($name) > 24))
{
return TRUE;
}
if ((mb_strlen($password) < 3) || (mb_strlen($password
) > 24))
{
return TRUE;
}
try
{
/* Đầu tiên, tìm kiếm username */
$sql = 'SELECT * FROM accounts WHERE (account_name
= ?) AND (account_enabled = 1) AND ((account_expiry > NOW
()) OR (account_expiry < ?))';
$st = $this->db->prepare($sql, array(PDO::ATTR_CURS
OR => PDO::CURSOR_FWDONLY));
$st->execute(array($name, '2000-01-01'));
$res = $st->fetch(PDO::FETCH_ASSOC);
/* Nếu username tồn tại được kết nối, tiếp tục kiểm
tra password */
if (password_verify($password, $res['account_passwo
rd']))
{
/* Log in ok, we retrieve the account data */
$this->account_id = $res['account_id'];
$this->account_name = $res['account_name'];
$this->is_authenticated = TRUE;
$this->expiry_date = $res['account_expiry'];
$this->session_start_time = time();
/* Bây giờ chúng ta tạo Cookie và gửi nó đến trì
nh duyệt của người dùng*/
$this->create_session();
}
}
catch (PDOException $e)
{
/* Ngoại lệ (SQL error) */
echo $e->getMessage();
return FALSE;
}
/* Nếu không có ngoại lệ xảy ra, return true */
return TRUE;
}
/* Thêm một tài khoản mới */
public static function add_account($username, $password,
&$db)
{
/* First we check the strings' length */
if ((mb_strlen($username) < 3) || (mb_strlen($username
) > 24))
{
return TRUE;
}
if ((mb_strlen($password) < 3) || (mb_strlen($password
) > 24))
{
return TRUE;
}
/* Băm mật khẩu */
$hash = password_hash($password, PASSWORD_DEFAULT);
try
{
/* Thêm tài khoản mới trên Database (Nên kiểm tra t
ên người dùng đã tồn tại hay chưa) */
$sql = 'INSERT INTO accounts (account_name, account
_password, account_enabled, account_expiry) VALUES (?, ?,
?, ?)';
$st = $db->prepare($sql);
$st->execute(array($username, $hash, '1', '1999-01-
01'));
}
catch (PDOException $e)
{
/* Ngoại lệ (SQL error) */
echo $e->getMessage();
return FALSE;
}
/* Nếu không có ngoại lệ xảy ra, return true */
return TRUE;
}
Xác thực Cookie và Xử lý Session
Web Cookie là tiêu chuẩn thực tế để duy trì các phiên đăng nhập mở.
Bạn có thể xử lý các phiên đăng nhập dựa trên cookie rất dễ dàng bằng
cách sử dụng PHP Session.
Nhờ có PHP Session, bạn không cần phải suy nghĩ gì về chi tiết các cookie:
Chỉ cần Start và Close Session là bạn đã hoàn thành.
Note: Không có gì có thể dễ hơn đâu.
Nếu bạn muốn, bạn cũng có thể tự mình quản lý cookie để xây dựng các
ứng dụng an toàn hơn bằng xác minh 2 bước
Xác minh 2 bước với PHP
Xác minh hai bước là hình thức xác minh thường được sử dụng trên các
website hiện đại ngày nay.
Đây là những gì sẽ xảy ra:
Sau khi đăng nhập bằng tên người dùng và mật khẩu của bạn, trang web sẽ
yêu cầu bạn nhập mã khác (hoặc mã thông báo).
Đó có thể là mã được tạo bởi ứng dụng di động, tin nhắn văn bản được gửi
đến điện thoại di động của bạn hoặc mã thông báo được gửi đến email của
bạn.
Còn có một số dịch vụ sử dụng thậm chí nhiều hơn hai bước.
Ví dụ, các trang web ngân hàng thường gửi mã thông báo đến điện thoại di
động của bạn và một số khác vào email của bạn để tăng tính bảo mật.
Điểm mấu chốt là:
Với PHP, bạn có thể triển khai bất kỳ loại hệ thống xác thực hai bước nào
(thậm chí nhiều hơn).
Trên thực tế, PHP hoàn toàn có khả năng:
• Tạo mã thông báo ngẫu nhiên, an toàn và lưu trữ trên cơ sở dữ liệu
• Gửi mã thông báo đến hộp thư đến của bạn bằng PHPMailer
• Kết nối với nhà cung cấp dịch vụ SMS API API để gửi mã thông báo
dưới dạng tin nhắn SMS
• Bạn muốn xem việc tạo mã thông báo ngẫu nhiên dễ dàng như thế
nào, lưu trữ nó trên cơ sở dữ liệu và gửi nó đến hộp thư đến của
người dùng?
Đây là mã ví dụ xác minh 2 bước:
<?php
/* Các biến đã được Khai báo:
$PHPMailer: Đối tượng PHPMailer
$PDO: PDO
$user_id: ID người dùng được liên kết với phiên đăng n
hập
$user_email: Email người dùng
*/
/* Tạo token ngẫu nhiên gồm 6 chữ số */
$token = random_int(100000, 999999);
/* Chuyển token thành chuỗi */
$token = strval($token);
/* Tạo một hàng database với token.
/* Query: */
$query = 'INSERT INTO user_tokens (user_id, token_timesta
mp, token_value) VALUES (?, NOW(), ?)';
/* Mảng giá trị: */
$values = array($user_id, $token);
try
{
/* Thực hiện truy vấn SQL */
$result = $PDO->prepare($query, array(PDO::ATTR_CURSOR
=> PDO::CURSOR_FWDONLY));
$result->execute($values);
}
catch (PDOException $e)
{
/* Nếu có lỗi, 1 ngoại lệ được ném ra */
echo 'PDO exception. Error message: "' . $e->getMessag
e() . '". Error code: ' . strval($e->getCode()) . '.';
die();
}
/* Gửi tin nhắn cho người dùng với token */
try {
/* Thiết lập người gửi thư. */
$PHPMailer->setFrom('noreply@yoursite.com');
/* Đặt email của người dùng làm người nhận. */
$PHPMailer->addAddress($user_email);
/* Thiết lập tiêu đề. */
$PHPMailer->Subject = 'Access Token';
/* Thiết lập nội dung tin nhắn. */
$PHPMailer->Body = 'Vui lòng sử dụng mã sau để đăng nh
ập: ' . $token;
/* Gửi thư. */
$PHPMailer->send();
}
catch (Exception $e)
{
/* PHPMailer exception. */
echo $e->errorMessage();
die();
}
4. PHP có thể thao tác với các CSDL dễ dàng
PHP hỗ trợ cơ sở dữ liệu ngay từ những ngày đầu.
Danh sách các hệ thống cơ sở dữ liệu được hỗ trợ là:
• MySQL
• PostgreSQL
• Berkeley DB (Rất phù hợp cho quản trị hệ thống)
• Oracle
• Microsoft SQL Server
• SQLite
• …
Với PHP, bạn cũng có thể sử dụng cơ sở dữ liệu NoQuery như MongoDB.
Còn bảo mật với PHP thì sao?
Đừng lo lắng quá về vấn đề bảo mật nếu bạn không làm trong ngành tài
chính, tiền tệ...
Với cấp độ thông thường, PHP giúp dễ dàng thực hiện các câu lệnh SQL an
toàn bằng cách sử dụng các câu lệnh escaping và prepared.
Đối với các kịch bản phổ biến sử dụng MySQL tiêu chuẩn, tiện ích mở rộng
PDO rất phù hợp để xây dựng mã SQL an toàn và mạnh mẽ.
Đoạn mã dưới đây cho bạn thấy cách bạn có thể làm điều đó với tiện ích
mở rộng PDO.
<?php
/* PDO Kết nối với CSDL */
try
{
/* Thực hiện kết nối*/
$PDO = new PDO('mysql:host=localhost;dbname=my_db', 'm
y_user', 'my_passwd');
/* Thiết lập các tham số */
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXC
EPTION);
$PDO->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
}
catch (PDOException $e)
{
/* Nếu xảy ra lỗi, một ngoại lệ sẽ được ném ra */
pdo_exception($e);
}
5. PHP có thể lập trình Backend
Ngày nay, lập trình Website là về sự kết hợp giữa các công nghệ frontend
và backend.
Các ứng dụng Frontend có thể rất đơn giản, như các trang web động cơ bản
với các hàm JavaScript và AJAX đơn giản hoặc các trang web web phức
tạp được xây dựng với các Framework và thư viện như JQuery, Node.JS,
Angular, v.v.
Bất kể ngôn ngữ hoặc thư viện nào frontend nào được tạo ra đều cần lấy
một số dữ liệu từ phía Backend.
Server Backend cũng có thể được tạo ra sử dụng công nghệ khác nhau.
Python, Perl, Java, và thậm chí C hay C++ đều có thể được sử dụng cùng
với HTTP Server để cung cấp dữ liệu từ Backend cho ứng dụng Frontend.
Nhưng, ngôn ngữ được sử dụng nhiều nhất tính đến thời điểm hiện tại
là PHP, bởi vì PHP đã được tạo ra để nhắm thẳng đến mục đích này.
Ví dụ,
Nhiều ứng dụng Frontend sử dụng định dạng JSON để giao tiếp với
Backend Server.
Để sử dụng PHP cung cấp dữ liệu ở định dạng này rất dễ dàng và đơn giản.
Hãy xem cách đọc một số dữ liệu người dùng từ cơ sở dữ liệu và sau đó trả
về ở định dạng JSON qua ví dụ sau:
<?php
$users = array();
$query = 'SELECT * FROM test.users ORDER BY user_surname
ASC';
$st = $PDO->prepare($query, array(PDO::ATTR_CURSOR => PDO
::CURSOR_FWDONLY));
$st->execute();
while ($res = $st->fetch(PDO::FETCH_ASSOC))
{
/* Lưu thông tin người dùng vào trong mảng */
$users_index = count($users);
$users[$users_index] = array(
'first name' => $res['user_first_name'],
'surname' => $res['user_surname'],
'address' => $res['user_address'],
'birthday' => $res['user_birthday']);
}
/* Tạo và xuất ra JSON string */
$json = json_encode($users);
echo $json;
6. PHP có thể tạo ứng dụng Real-time
Các ứng dụng Web Real-time (thời gian thực) bao gồm chats, hệ thống
giám sát, bot, mạng xã hội, web game và v.v.
Bạn có thể xây dựng các ứng dụng như vậy bằng các công nghệ khác nhau,
đáng chú ý là sử dụng MEAN stack bao gồm Node.JS, Express và
Angular.JS.
Các Framework dựa trên WebSocket như Socket.IO cũng rất mạnh mẽ và
được sử dụng rộng rãi ngày nay.
Một số hiệu ứng ứng dụng thời gian thực chỉ dùng thư viện Javascript là
Node.js để xây dựng Backend Server, nhưng trong một số trường hợp sử
dụng PHP cũng rất tốt.
Bạn có thể sẽ thắc mắc và muốn biết "Node.js hay PHP tốt hơn?". Nhưng
nếu để tìm ra công nghệ chiến thắng thì tôi nghĩ nó thật ngu ngốc khi đánh
giá công nghệ web.
Tốt hơn là, tập trung vào làm thế nào để làm cho các công nghệ hoạt động
cùng nhau thay vì cố gắng tìm ra những thứ tốt nhất.
Ví dụ, cách đây không lâu tôi đã tạo một Backend Server với Node.JS cho
một hệ thống chat đơn giản. Tuy nhiên, tôi đã gặp một số rắc rối khi sử
dụng cơ sở dữ liệu.
Vậy tôi đã làm gì sau đó?
Rất đơn giản.
Tôi đã tạo Node.JS kết nối với một Backend bằng PHP và sử dụng nó để
thực hiện các thao tác với cơ sở dữ liệu mà tôi không thể làm được nếu chỉ
sử dụng Node.
Tại sao chỉ chọn giữa Node.JS và PHP trong khi chúng ta có thể sử dụng
cả hai?
Node: Chính xác hơn là bạn nên biết Sự khác nhau giữa PHP và Node.js để
biết sử dụng, kết hợp lúc nào phù hợp.
7. PHP có thể tạo Theme và Plugin WordPress
Chắc bạn đã biết hầu hết các Web Framework và CMS (hệ thống quản lý
nội dung) được viết bằng PHP.
WordPress là một trong những CMS thành công nhất với mức độ phổ biến
liên tục tăng trong trong hai thập kỷ qua.
Nếu bạn cảm thấy hứng thú với Wordpress, hãy xem kho lưu trữ plugin
WordPress chính thức hoặc tại các trang web như Envato Market: Đã có
bao nhiêu phần mềm đang được viết (và bán) cho WordPress?
Một điều rõ ràng là:
Nếu bạn có kế hoạch kiếm tiền bằng nghề lập trình, thì PHP là lựa chọn an
toàn và nhanh chóng hơn nhiều ngôn ngữ lập trình khác.
8. PHP có thể tạo REST và WEB Service
Các Web Service (bao gồm các REST service) là các hệ thống trao đổi dữ
liệu giữa máy với máy qua HTTP(S).
Thông thường, các trang web động trao đổi dữ liệu với người dùng, ví dụ
như thông qua các biểu mẫu (Form HTML).
Mặt khác, các Web Service giao tiếp trực tiếp với các hệ thống khác như
các web service, thiết bị và các ứng dụng từ xa khác.
Một ví dụ thực tế:
Tất cả các dịch vụ dự báo thời tiết đều có giao diện đẹp, các trang web dịch
vụ định vị, vv..
Bạn có thể đã nhận thấy là ngay cả khi có hàng ngàn trang web dự báo thời
tiết trên internet, nhưng đa phần họ cung cấp thông tin giống nhau.
Đó không phải là một sự trùng hợp ngẫu nhiên:
Chỉ một số công ty có đủ cơ sở hạ tầng đắt tiền để thu thập tất cả các dữ
liệu liên quan đến thời tiết cần thiết để dự báo.
Hầu hết các trang web thời tiết chỉ đọc dữ liệu dự báo từ nguồn do các
công ty đó cung cấp và hiển thị nó trên các trang web của riêng họ.
Và dĩ nhiên, các hoạt động trao đổi dữ liệu này thông qua Web service.
Máy khách sẽ gửi một yêu cầu HTTP đến Service của nhà cung cấp và
nhận lại dữ liệu cho phép.
Vì chỉ trao đổi giữa Máy và Máy nên dữ liệu này không có lý do gì phải biểu
diễn bằng mã HTML và CSS cả.
Thay vào đó, Web Service sử dụng giao thức trao đổi dữ liệu bằng:
• CSV: Một danh sách rất đơn giản các phần tử được phân tách bằng
một điểm phân tách (như: data1; data2; data3;). Định dạng này chỉ
được sử dụng cho các Service rất đơn giản.
• XML: Một ngôn ngữ mã hóa phức tạp và mạnh mẽ, phù hợp với các
Service rất phức tạp.
• JSON: Một định dạng mã hóa hiện đại ngày nay rất hay được sử dụng,
đơn giản hơn XML và được hỗ trợ tốt bởi các Framework và thư viện
hiện đại.
Viết một Web Service bằng PHP thực sự dễ dàng hơn bạn nghĩ. Trong thực
tế, các thư viện PHP tiêu chuẩn sẵn có đều hỗ trợ cho cả định dạng XML và
JSON.
9. Tạo hệ thống chạy nền với PHP (PHP Daemon)
Daemon là các quá trình tiếp tục chạy nền mà không có sự tương tác của
người dùng.
Hãy nghĩ về một ứng dụng lập lịch công việc,
như CRON trên Linux hoặc Task Scheduler trên Windows: Chúng chạy trong
nền và thực hiện công việc của họ mà không tương tác trực tiếp với người
dùng.
Các quy trình như vậy được gọi là daemon trong các hệ thống Linux và
Unix.
(Bạn có thể nhận thấy rằng trên Linux, một số quy trình của LinkedIn kết
thúc bằng một d, như crond, httpd, mysqld, đó là chữ "d" của daemon).
Bây giờ, quay trở lại với PHP.
Thông thường, tập lệnh PHP kết thúc sau khi PHP Module của Web Server
đã chạy xong. Nó thường mất ít hơn một giây.
Tuy nhiên, bạn có thể tạo các tập lệnh PHP không bao giờ kết thúc để chạy
ở chế độ nền, giống như Daemon.
PHP Daemon như vậy có thể hoàn thành rất nhiều nhiệm vụ. Ví dụ, chúng có
thể theo dõi một số dữ liệu và gửi thông báo qua email khi có trường hợp
cụ thể phát sinh, gần như trong thời gian thực.
PHP Daemon sử dụng cấu trúc kiểu C, yêu cầu:
• Một vòng lặp không bao giờ kết thúc, ví dụ vòng lặp while(). Vòng lặp có
thể kết thúc trong các trường hợp cụ thể hoặc sau một thời gian,
nhưng nó cũng có thể tiếp tục vô thời hạn.
• Đồng hồ lặp: Một bộ đếm để thiết lập tốc độ lặp.
Bạn không thể chỉ để vòng lặp lặp lặp lại mà không delay nó, nếu
không, tập lệnh sẽ sử dụng tất cả sức mạnh của CPU của bạn. Để
delay chúng, bạn có thể sử dụng các hàm sleep() và ussleep() để tạm
dừng mỗi lần lặp trong một khoảng thời gian nhất định.
Và trong vòng lặp, kịch bản bạn dựng sẵn sẽ thực hiện các nhiệm vụ của
nó.
Nghe có vẻ phức tạp, nhưng nó thực sự khá đơn giản.
Hãy xem ví dụ sau: Nó có một PHP Daemon đơn giản theo dõi giá trị từ cơ
sở dữ liệu và gửi email nếu giá trị này quá cao:
<?php
/* $PHPMailer: a PHPMailer object
$PDO: a PDO connection resource
*/
/* Xóa giới hạn thời gian thực hi */
set_time_limit(0);
/* Khoảng thời gian lặp (s) */
$sleep_time = 600;
/* Ngưỡng giá trị */
$threshold = 100;
while (TRUE)
{
/* Ngủ trong khoảng thời gian lặp */
sleep($sleep_time);
try
{
/* Truy vấn*/
$query = 'SELECT value FROM values ORDER BY value_t
imestamp DESC';
$result = $PDO->prepare($query, array(PDO::ATTR_CUR
SOR => PDO::CURSOR_FWDONLY));
$result->execute();
$row = $result->fetch(PDO::FETCH_ASSOC);
}
catch (PDOException $e)
{
/* Nếu có lỗi, một ngoại lệ được ném ra */
echo 'PDO exception. Error message: "' . $e->getMes
sage() . '". Error code: ' . strval($e->getCode()) . '.';
die();
}
/* Kiểm tra giá trị so với Ngưỡng */
if ($row['value'] >= $threshold)
{
try
{
$PHPMailer->setFrom('noreply@yoursite.com');
$PHPMailer->addAddress('alerts@yoursite.com');
$PHPMailer->Subject = 'Value alert';
$PHPMailer->Body = 'Last value is: ' . $token;
$PHPMailer->send();
}
catch (Exception $e)
{
echo $e->errorMessage();
die();
}
}
}
10. Tạo hình ảnh bằng PHP
Tôi cá là bạn không biết điều này:
Bạn thực sự có thể tạo hình ảnh đồ họa trực tiếp từ PHP.
Thư viện PHP tiêu chuẩn đã bao gồm một bộ công cụ các chức năng của
Thư viện GD cho phép bạn tạo hình ảnh đồ họa như các tệp JPEG chỉ trong
một vài dòng mã.
Đúng là hiện nay, các hình ảnh đồ họa Frontend đang được xử lý bởi
HTML5 và JavaScript.
Tuy nhiên, các thao tác phụ trợ (như tạo, thay đổi kích thước, nén dung
lượng) vẫn được sử dụng rộng rãi cho đến ngày nay.
Note: Giống như tất cả các plugin WordPress thu nhỏ hình ảnh, nén hình
ảnh để tối ưu tốc độ tải trang.
11. PHP có thể tạo kịch bản hệ thống
Các tập lệnh PHP thường được điều hành bởi một máy chủ web, nhưng đó
không phải là trường hợp này.
Bạn cũng có thể chạy các tập lệnh PHP bằng Command line PHP
interpreter hoặc PHP-CLI:
Bạn có thể sử dụng PHP để thực hiện các nhiệm vụ bảo trì hệ thống, chẳng
hạn như:
• Kiểm tra hệ thống tập tin
• Ghi nhật ký phân tích và bảo trì
• Tự động tải xuống và lưu trữ tài nguyên từ xa
• Tải lên và tải xuống định kỳ
• Bảo trì cơ sở dữ liệu
Bạn có thể thực thi các tập lệnh này bằng CRON hoặc các trình lập lịch
khác hoặc sử dụng bất kỳ loại trình kích hoạt nào giống như bạn làm với
các tập lệnh C hoặc BASH shell.
12. Kết luận
Trong bài viết này, bạn đã thấy có rất nhiều nhiệm vụ khác nhau mà PHP có
thể làm.
Nó không chỉ là về việc lập trình các trang web động.
Xây dụng Backend, REST Service và Xác thực thông tin người dùng chỉ là
một số cách có thể sử dụng của ngôn ngữ PHP.
Và hãy tin tôi: Nếu bạn học được cách sử dụng PHP trong nhiều kịch bản
khác nhau này, bạn chắc chắn sẽ nổi bật so với các lập trình viên PHP khác.
Đây cũng là một cách để thăng tiến sự nghiệp hoặc tăng thêm thu nhập.
Note: Nếu hướng dẫn này có ích cho bạn, hãy dành một chút thời gian của
bạn để chia sẻ nó... cảm ơn bạn!
Alex
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành
động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150
Email: hello@niithanoi.edu.vn
Website: https://niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh
#hoclaptrinhjava #hoclaptrinhphp

More Related Content

What's hot

Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quocPhan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quocTrung Phan Thai
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressKhanhPham
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Sql injection bao cao - http://ouo.io/Mqc8L5
Sql injection bao cao - http://ouo.io/Mqc8L5Sql injection bao cao - http://ouo.io/Mqc8L5
Sql injection bao cao - http://ouo.io/Mqc8L5phanleson
 
Ajax report
Ajax reportAjax report
Ajax reportdvcuong
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao KhanhPham
 
Sql injection it-slideshares.blogspot.com
Sql injection it-slideshares.blogspot.comSql injection it-slideshares.blogspot.com
Sql injection it-slideshares.blogspot.comphanleson
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Loi web reported-attack-site
Loi web reported-attack-siteLoi web reported-attack-site
Loi web reported-attack-sitelaonap166
 
Tăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho FirefoxTăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho FirefoxNguyễn Anh
 
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionNguyễn Danh Thanh
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascriptzingoncmu2
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTMasterCode.vn
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Thanh Tuan Ngo
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtKhanhPham
 

What's hot (19)

Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quocPhan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Sql injection bao cao - http://ouo.io/Mqc8L5
Sql injection bao cao - http://ouo.io/Mqc8L5Sql injection bao cao - http://ouo.io/Mqc8L5
Sql injection bao cao - http://ouo.io/Mqc8L5
 
Ajax report
Ajax reportAjax report
Ajax report
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
 
Sql injection it-slideshares.blogspot.com
Sql injection it-slideshares.blogspot.comSql injection it-slideshares.blogspot.com
Sql injection it-slideshares.blogspot.com
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Loi web reported-attack-site
Loi web reported-attack-siteLoi web reported-attack-site
Loi web reported-attack-site
 
Tăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho FirefoxTăng tốc toàn diện cho Firefox
Tăng tốc toàn diện cho Firefox
 
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select union
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascript
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
 
Bài tập javascript
Bài tập javascriptBài tập javascript
Bài tập javascript
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 

Similar to PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP

PMMNM.docx
PMMNM.docxPMMNM.docx
PMMNM.docxNgnHng26
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake phplaonap166
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpressvngnhuhaiyen236
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-phphieusy
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlGiang Nguyễn
 
Báo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptxBáo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptxQuangSn11
 
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênBÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênKiên Nguyễn
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.commai_non
 
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vnNguyen Van Hung
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPNguyễn Tuấn Quỳnh
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfHuyVnh4
 
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNgoc Dao
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressvngnhuhaiyen236
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netnataliej4
 
BÁO CÁO THỰC TẬP CUỐI KHÓA - TRUNG TÂM ATHENA
BÁO CÁO THỰC TẬP CUỐI KHÓA  - TRUNG TÂM ATHENABÁO CÁO THỰC TẬP CUỐI KHÓA  - TRUNG TÂM ATHENA
BÁO CÁO THỰC TẬP CUỐI KHÓA - TRUNG TÂM ATHENAKiên Nguyễn
 

Similar to PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP (20)

PMMNM.docx
PMMNM.docxPMMNM.docx
PMMNM.docx
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Yii
YiiYii
Yii
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpress
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-php
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
 
Báo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptxBáo cáo môn lập trình web TMĐT.pptx
Báo cáo môn lập trình web TMĐT.pptx
 
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênBÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.com
 
Wordpress
WordpressWordpress
Wordpress
 
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHP
 
Baocaonghiem
BaocaonghiemBaocaonghiem
Baocaonghiem
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdf
 
Báo cáo athena
Báo cáo athenaBáo cáo athena
Báo cáo athena
 
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần application
 
Báo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpressBáo cáo thực tập chuyên đề wordpress
Báo cáo thực tập chuyên đề wordpress
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.net
 
BÁO CÁO THỰC TẬP CUỐI KHÓA - TRUNG TÂM ATHENA
BÁO CÁO THỰC TẬP CUỐI KHÓA  - TRUNG TÂM ATHENABÁO CÁO THỰC TẬP CUỐI KHÓA  - TRUNG TÂM ATHENA
BÁO CÁO THỰC TẬP CUỐI KHÓA - TRUNG TÂM ATHENA
 

More from NIIT - ICT Hà Nội

Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev Report
Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev ReportToàn cảnh thị trường IT Việt Nam năm 2020 | TopDev Report
Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev ReportNIIT - ICT Hà Nội
 
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITTu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITNIIT - ICT Hà Nội
 
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt Nhất
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt NhấtTop 25 Trang Web học Lập trình Java Miễn Phí Tốt Nhất
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt NhấtNIIT - ICT Hà Nội
 
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà Nội
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà NộiGiới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà Nội
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà NộiNIIT - ICT Hà Nội
 
Định hướng nghề nghiệp Tester NIIT - ICT Hà Nội
Định hướng nghề nghiệp Tester NIIT - ICT Hà NộiĐịnh hướng nghề nghiệp Tester NIIT - ICT Hà Nội
Định hướng nghề nghiệp Tester NIIT - ICT Hà NộiNIIT - ICT Hà Nội
 
Giới thiệu về NIIT - ICT Hà Nội
Giới thiệu về NIIT - ICT Hà NộiGiới thiệu về NIIT - ICT Hà Nội
Giới thiệu về NIIT - ICT Hà NộiNIIT - ICT Hà Nội
 

More from NIIT - ICT Hà Nội (7)

Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev Report
Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev ReportToàn cảnh thị trường IT Việt Nam năm 2020 | TopDev Report
Toàn cảnh thị trường IT Việt Nam năm 2020 | TopDev Report
 
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITTu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
 
Bang Cuu Chuong Git | NIIT
Bang Cuu Chuong Git | NIITBang Cuu Chuong Git | NIIT
Bang Cuu Chuong Git | NIIT
 
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt Nhất
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt NhấtTop 25 Trang Web học Lập trình Java Miễn Phí Tốt Nhất
Top 25 Trang Web học Lập trình Java Miễn Phí Tốt Nhất
 
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà Nội
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà NộiGiới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà Nội
Giới thiệu về tiềm năng công nghệ VR, AR, MR NIIT - ICT Hà Nội
 
Định hướng nghề nghiệp Tester NIIT - ICT Hà Nội
Định hướng nghề nghiệp Tester NIIT - ICT Hà NộiĐịnh hướng nghề nghiệp Tester NIIT - ICT Hà Nội
Định hướng nghề nghiệp Tester NIIT - ICT Hà Nội
 
Giới thiệu về NIIT - ICT Hà Nội
Giới thiệu về NIIT - ICT Hà NộiGiới thiệu về NIIT - ICT Hà Nội
Giới thiệu về NIIT - ICT Hà Nội
 

Recently uploaded

BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 

Recently uploaded (20)

BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 

PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP

  • 1. PHP Có thể Làm gì? 9 Thứ thú vị có thể làm với PHP PHP chủ yếu được sử dụng để làm các trang web động, nhưng có nhiều thứ thú vị hơn bạn có thể làm với PHP. Trong bài viết này, bạn sẽ thấy 9 ví dụ thú vị về cách bạn có thể sử dụng PHP để lập trình bên cạnh việc làm các trang web động. Chắc chắn bạn sẽ ngạc nhiên khi thấy PHP có thể được sử dụng làm nhiều thứ hay như thế. • Nhân tiện, nếu bạn thật sự muốn bắt đầu với PHP, Khóa học Lập trình Web với PHP trong 3 tháng là một cách giúp bạn nhanh chân hơn. Vậy bạn có thể làm gì với PHP? Hãy cùng tìm hiểu ngay bên dưới đây. Mục lục: 1. Tại sao nên sử dụng PHP? 2. PHP dùng để làm gì? 3. PHP có thể Xác thực thông tin người dùng (bao gồm xác minh hai bước) 4. PHP có thể thao tác với các CSDL dễ dàng 5. PHP có thể lập trình Backend 6. PHP có thể tạo ứng dụng Real-time 7. PHP có thể tạo Theme và Plugin WordPress 8. PHP có thể tạo REST và WEB Service 9. Tạo hệ thống chạy ngầm với PHP (PHP Daemon) 10. Tạo hình ảnh với PHP 11. PHP có thể tạo Kịch bản hệ thống 12. Kết luận
  • 2. 1. Tại sao nên sử dụng PHP? PHP là một ngôn ngữ kịch bản (Scripting Languages) hiện đại được sử dụng trong gần 80% trang web (Số liệu 20/09/2019), tăng từ 72% vào năm 2010. Tỷ lệ ngôn ngữ lập trình dùng cho Server-side (Nguồn W3Tech) Có nhiều lý do khác nhau tại sao PHP lại trở thành một ngôn ngữ lập trình web phổ biến như vậy, nhưng có 3 lý do chính sau: • PHP dễ học hơn nhiều ngôn ngữ khác
  • 3. • PHP thích hợp các trang web thiên về nội dung và hỗ trợ dữ liệu từ Backend • PHP cung cấp cho bạn một bộ công cụ hoàn chỉnh để bạn làm việc. Thực tế là PHP được rất sử dụng rộng rãi cũng có nghĩa là bạn có thể tìm kiếm hướng dẫn học tập, group, diễn đàn thảo luận rất dễ dàng. Vấn đề chính chống lại PHP là hiệu năng và hiệu suất tổng thể kém nhiều ngôn ngữ khác ở nhiều trường hợp. Chắc chắn, có thể bạn đã hy vọng PHP sẽ có hiệu suất cao như C hoặc C ++. Tuy nhiên, trừ khi bạn đang làm việc trên các hệ thống quan trọng, phức tạp, đồ sộ hoặc hệ thống nhúng trong đó hiệu suất là ưu tiên hàng đầu. Còn đa phần các trường hợp, hiệu suất của PHP đã là quá đủ. Hơn nữa, Ở phiên bản PHP7, PHP có hiệu suất rất tốt nếu so sánh với các ngôn ngữ tương tự. Và trên thực tế, PHP có thể nhanh hơn 382% so với Python, nhanh hơn 378% so với Perl và nhanh hơn 195% so với Ruby. (Bạn có thể xem thử nghiệm hiệu suất tại đây) 2. PHP sử dụng để làm gì?
  • 4. PHP có thể làm gì? PHP có thể làm nhiều loại nhiệm vụ khác nhau. Ví dụ: Hãy thử nghĩ rằng bạn cần triển khai một HTTP Backend hoặc REST Service. Trong trường hợp đó, bạn muốn sử dụng một ngôn ngữ: • Được hỗ trợ tốt bởi các máy chủ web được sử dụng nhiều nhất như Apache • Tích hợp hoàn hảo với các cơ sở dữ liệu SQL như MySQL • Có thể xử lý văn bản, chuỗi và dữ liệu số dễ dàng Trong trường hợp này, sử dụng PHP là hoàn hảo. Trên thực tế, PHP thường là lựa chọn đầu tiên cho các dự án như vậy. Thử xem biểu đồ sau:
  • 5. Ví dụ ứng dụng đo nhiệt độ bằng PHP Đây là một đồ thị HTML5 mà tôi đã tạo ra tại nơi làm việc. Nó hiển thị nhiệt độ không khí trong 24 giờ qua. Bản thân đồ thị được tạo ra với một thư viện canvas có tên là RGraph, nhưng các giá trị nhiệt độ thực tế được tính toán, lưu trữ và truy xuất bởi PHP. Nhưng làm thế nào để bạn biết dự án của bạn phù hợp với ngôn ngữ PHP? Đơn giản, bạn sẽ chỉ cần hỏi 3 câu hỏi sau: • Dự án của tôi sẽ sử dụng các thế mạnh và chức năng của PHP? • Tôi có thể chạy dự án này từ Web Server hoặc với trình thông dịch PHP Command line không? • Dự án này có đòi hỏi hiệu suất và hiệu quả rất cao? Nếu bạn trả lời "CÓ" cho hai câu hỏi đầu tiên và "KHÔNG" cho câu hỏi cuối cùng, thì PHP là một ứng cử viên hàng đầu.
  • 6. Bây giờ, lan man cũng đã đủ rồi. Đã đến lúc để xem một số ví dụ thực tế về những gì bạn có thể làm với PHP, bắt đầu với một thứ bạn chắc chắn bạn sẽ sử dụng: Xác thực thông tin người dùng. 3. PHP có thể Xác thực thông tin người dùng (bao gồm xác minh hai bước) Xác thực thông tin người dùng là một trong những nền tảng của bảo mật web. Nếu bạn đang xây dựng trang web có phần tài khoản người dùng, rất có thể bạn cần triển khai xác thực người dùng. Có rất nhiều kỹ thuật khác nhau mà bạn có thể sử dụng, từ xác thực tên người dùng / mật khẩu theo cách đơn giản đến việc xác minh hai bước (hoặc phức tạp hơn) Và đoán xem... Với PHP, bạn có thể thực hiện bất kỳ kỹ thuật nào trong số này. Xác thực tên người dùng và mật khẩu Thực hiện xác thực tên người dùng và mật khẩu dễ dàng như việc so sánh hai chuỗi. PHP có thể dễ dàng lưu trữ và truy xuất các cặp tên người dùng và mật khẩu trên cơ sở dữ liệu, sử dụng mã hóa cấp cao nhất mà không cần cố gắng gì nhiều. Vậy trong thực tế việc này có thể làm thế nào? Hãy xem các chức năng đăng nhập và add_account sau đây được của tôi:
  • 7. /* Xác thực Tên người dùng và mật Khẩu */ public function login($name, $password) { /* Kiểm tra độ dài của chuỗi */ if ((mb_strlen($name) < 3) || (mb_strlen($name) > 24)) { return TRUE; } if ((mb_strlen($password) < 3) || (mb_strlen($password ) > 24)) { return TRUE; } try { /* Đầu tiên, tìm kiếm username */ $sql = 'SELECT * FROM accounts WHERE (account_name = ?) AND (account_enabled = 1) AND ((account_expiry > NOW ()) OR (account_expiry < ?))'; $st = $this->db->prepare($sql, array(PDO::ATTR_CURS OR => PDO::CURSOR_FWDONLY));
  • 8. $st->execute(array($name, '2000-01-01')); $res = $st->fetch(PDO::FETCH_ASSOC); /* Nếu username tồn tại được kết nối, tiếp tục kiểm tra password */ if (password_verify($password, $res['account_passwo rd'])) { /* Log in ok, we retrieve the account data */ $this->account_id = $res['account_id']; $this->account_name = $res['account_name']; $this->is_authenticated = TRUE; $this->expiry_date = $res['account_expiry']; $this->session_start_time = time(); /* Bây giờ chúng ta tạo Cookie và gửi nó đến trì nh duyệt của người dùng*/ $this->create_session(); } } catch (PDOException $e) { /* Ngoại lệ (SQL error) */
  • 9. echo $e->getMessage(); return FALSE; } /* Nếu không có ngoại lệ xảy ra, return true */ return TRUE; } /* Thêm một tài khoản mới */ public static function add_account($username, $password, &$db) { /* First we check the strings' length */ if ((mb_strlen($username) < 3) || (mb_strlen($username ) > 24)) { return TRUE; } if ((mb_strlen($password) < 3) || (mb_strlen($password ) > 24)) {
  • 10. return TRUE; } /* Băm mật khẩu */ $hash = password_hash($password, PASSWORD_DEFAULT); try { /* Thêm tài khoản mới trên Database (Nên kiểm tra t ên người dùng đã tồn tại hay chưa) */ $sql = 'INSERT INTO accounts (account_name, account _password, account_enabled, account_expiry) VALUES (?, ?, ?, ?)'; $st = $db->prepare($sql); $st->execute(array($username, $hash, '1', '1999-01- 01')); } catch (PDOException $e) { /* Ngoại lệ (SQL error) */ echo $e->getMessage(); return FALSE; }
  • 11. /* Nếu không có ngoại lệ xảy ra, return true */ return TRUE; } Xác thực Cookie và Xử lý Session Web Cookie là tiêu chuẩn thực tế để duy trì các phiên đăng nhập mở. Bạn có thể xử lý các phiên đăng nhập dựa trên cookie rất dễ dàng bằng cách sử dụng PHP Session. Nhờ có PHP Session, bạn không cần phải suy nghĩ gì về chi tiết các cookie: Chỉ cần Start và Close Session là bạn đã hoàn thành. Note: Không có gì có thể dễ hơn đâu. Nếu bạn muốn, bạn cũng có thể tự mình quản lý cookie để xây dựng các ứng dụng an toàn hơn bằng xác minh 2 bước Xác minh 2 bước với PHP Xác minh hai bước là hình thức xác minh thường được sử dụng trên các website hiện đại ngày nay. Đây là những gì sẽ xảy ra: Sau khi đăng nhập bằng tên người dùng và mật khẩu của bạn, trang web sẽ yêu cầu bạn nhập mã khác (hoặc mã thông báo). Đó có thể là mã được tạo bởi ứng dụng di động, tin nhắn văn bản được gửi đến điện thoại di động của bạn hoặc mã thông báo được gửi đến email của bạn. Còn có một số dịch vụ sử dụng thậm chí nhiều hơn hai bước. Ví dụ, các trang web ngân hàng thường gửi mã thông báo đến điện thoại di
  • 12. động của bạn và một số khác vào email của bạn để tăng tính bảo mật. Điểm mấu chốt là: Với PHP, bạn có thể triển khai bất kỳ loại hệ thống xác thực hai bước nào (thậm chí nhiều hơn). Trên thực tế, PHP hoàn toàn có khả năng: • Tạo mã thông báo ngẫu nhiên, an toàn và lưu trữ trên cơ sở dữ liệu • Gửi mã thông báo đến hộp thư đến của bạn bằng PHPMailer • Kết nối với nhà cung cấp dịch vụ SMS API API để gửi mã thông báo dưới dạng tin nhắn SMS • Bạn muốn xem việc tạo mã thông báo ngẫu nhiên dễ dàng như thế nào, lưu trữ nó trên cơ sở dữ liệu và gửi nó đến hộp thư đến của người dùng? Đây là mã ví dụ xác minh 2 bước: <?php /* Các biến đã được Khai báo: $PHPMailer: Đối tượng PHPMailer $PDO: PDO $user_id: ID người dùng được liên kết với phiên đăng n hập $user_email: Email người dùng
  • 13. */ /* Tạo token ngẫu nhiên gồm 6 chữ số */ $token = random_int(100000, 999999); /* Chuyển token thành chuỗi */ $token = strval($token); /* Tạo một hàng database với token. /* Query: */ $query = 'INSERT INTO user_tokens (user_id, token_timesta mp, token_value) VALUES (?, NOW(), ?)'; /* Mảng giá trị: */ $values = array($user_id, $token); try { /* Thực hiện truy vấn SQL */ $result = $PDO->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $result->execute($values);
  • 14. } catch (PDOException $e) { /* Nếu có lỗi, 1 ngoại lệ được ném ra */ echo 'PDO exception. Error message: "' . $e->getMessag e() . '". Error code: ' . strval($e->getCode()) . '.'; die(); } /* Gửi tin nhắn cho người dùng với token */ try { /* Thiết lập người gửi thư. */ $PHPMailer->setFrom('noreply@yoursite.com'); /* Đặt email của người dùng làm người nhận. */ $PHPMailer->addAddress($user_email); /* Thiết lập tiêu đề. */ $PHPMailer->Subject = 'Access Token'; /* Thiết lập nội dung tin nhắn. */
  • 15. $PHPMailer->Body = 'Vui lòng sử dụng mã sau để đăng nh ập: ' . $token; /* Gửi thư. */ $PHPMailer->send(); } catch (Exception $e) { /* PHPMailer exception. */ echo $e->errorMessage(); die(); } 4. PHP có thể thao tác với các CSDL dễ dàng PHP hỗ trợ cơ sở dữ liệu ngay từ những ngày đầu. Danh sách các hệ thống cơ sở dữ liệu được hỗ trợ là: • MySQL • PostgreSQL • Berkeley DB (Rất phù hợp cho quản trị hệ thống) • Oracle • Microsoft SQL Server • SQLite • … Với PHP, bạn cũng có thể sử dụng cơ sở dữ liệu NoQuery như MongoDB.
  • 16. Còn bảo mật với PHP thì sao? Đừng lo lắng quá về vấn đề bảo mật nếu bạn không làm trong ngành tài chính, tiền tệ... Với cấp độ thông thường, PHP giúp dễ dàng thực hiện các câu lệnh SQL an toàn bằng cách sử dụng các câu lệnh escaping và prepared. Đối với các kịch bản phổ biến sử dụng MySQL tiêu chuẩn, tiện ích mở rộng PDO rất phù hợp để xây dựng mã SQL an toàn và mạnh mẽ. Đoạn mã dưới đây cho bạn thấy cách bạn có thể làm điều đó với tiện ích mở rộng PDO. <?php /* PDO Kết nối với CSDL */ try { /* Thực hiện kết nối*/ $PDO = new PDO('mysql:host=localhost;dbname=my_db', 'm y_user', 'my_passwd'); /* Thiết lập các tham số */ $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXC EPTION);
  • 17. $PDO->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); } catch (PDOException $e) { /* Nếu xảy ra lỗi, một ngoại lệ sẽ được ném ra */ pdo_exception($e); } 5. PHP có thể lập trình Backend Ngày nay, lập trình Website là về sự kết hợp giữa các công nghệ frontend và backend. Các ứng dụng Frontend có thể rất đơn giản, như các trang web động cơ bản với các hàm JavaScript và AJAX đơn giản hoặc các trang web web phức tạp được xây dựng với các Framework và thư viện như JQuery, Node.JS, Angular, v.v. Bất kể ngôn ngữ hoặc thư viện nào frontend nào được tạo ra đều cần lấy một số dữ liệu từ phía Backend. Server Backend cũng có thể được tạo ra sử dụng công nghệ khác nhau. Python, Perl, Java, và thậm chí C hay C++ đều có thể được sử dụng cùng với HTTP Server để cung cấp dữ liệu từ Backend cho ứng dụng Frontend. Nhưng, ngôn ngữ được sử dụng nhiều nhất tính đến thời điểm hiện tại là PHP, bởi vì PHP đã được tạo ra để nhắm thẳng đến mục đích này. Ví dụ, Nhiều ứng dụng Frontend sử dụng định dạng JSON để giao tiếp với Backend Server.
  • 18. Để sử dụng PHP cung cấp dữ liệu ở định dạng này rất dễ dàng và đơn giản. Hãy xem cách đọc một số dữ liệu người dùng từ cơ sở dữ liệu và sau đó trả về ở định dạng JSON qua ví dụ sau: <?php $users = array(); $query = 'SELECT * FROM test.users ORDER BY user_surname ASC'; $st = $PDO->prepare($query, array(PDO::ATTR_CURSOR => PDO ::CURSOR_FWDONLY)); $st->execute(); while ($res = $st->fetch(PDO::FETCH_ASSOC)) { /* Lưu thông tin người dùng vào trong mảng */ $users_index = count($users); $users[$users_index] = array( 'first name' => $res['user_first_name'], 'surname' => $res['user_surname'],
  • 19. 'address' => $res['user_address'], 'birthday' => $res['user_birthday']); } /* Tạo và xuất ra JSON string */ $json = json_encode($users); echo $json; 6. PHP có thể tạo ứng dụng Real-time Các ứng dụng Web Real-time (thời gian thực) bao gồm chats, hệ thống giám sát, bot, mạng xã hội, web game và v.v. Bạn có thể xây dựng các ứng dụng như vậy bằng các công nghệ khác nhau, đáng chú ý là sử dụng MEAN stack bao gồm Node.JS, Express và Angular.JS. Các Framework dựa trên WebSocket như Socket.IO cũng rất mạnh mẽ và được sử dụng rộng rãi ngày nay. Một số hiệu ứng ứng dụng thời gian thực chỉ dùng thư viện Javascript là Node.js để xây dựng Backend Server, nhưng trong một số trường hợp sử dụng PHP cũng rất tốt. Bạn có thể sẽ thắc mắc và muốn biết "Node.js hay PHP tốt hơn?". Nhưng nếu để tìm ra công nghệ chiến thắng thì tôi nghĩ nó thật ngu ngốc khi đánh giá công nghệ web. Tốt hơn là, tập trung vào làm thế nào để làm cho các công nghệ hoạt động cùng nhau thay vì cố gắng tìm ra những thứ tốt nhất. Ví dụ, cách đây không lâu tôi đã tạo một Backend Server với Node.JS cho một hệ thống chat đơn giản. Tuy nhiên, tôi đã gặp một số rắc rối khi sử dụng cơ sở dữ liệu.
  • 20. Vậy tôi đã làm gì sau đó? Rất đơn giản. Tôi đã tạo Node.JS kết nối với một Backend bằng PHP và sử dụng nó để thực hiện các thao tác với cơ sở dữ liệu mà tôi không thể làm được nếu chỉ sử dụng Node. Tại sao chỉ chọn giữa Node.JS và PHP trong khi chúng ta có thể sử dụng cả hai? Node: Chính xác hơn là bạn nên biết Sự khác nhau giữa PHP và Node.js để biết sử dụng, kết hợp lúc nào phù hợp. 7. PHP có thể tạo Theme và Plugin WordPress Chắc bạn đã biết hầu hết các Web Framework và CMS (hệ thống quản lý nội dung) được viết bằng PHP. WordPress là một trong những CMS thành công nhất với mức độ phổ biến liên tục tăng trong trong hai thập kỷ qua. Nếu bạn cảm thấy hứng thú với Wordpress, hãy xem kho lưu trữ plugin WordPress chính thức hoặc tại các trang web như Envato Market: Đã có bao nhiêu phần mềm đang được viết (và bán) cho WordPress? Một điều rõ ràng là: Nếu bạn có kế hoạch kiếm tiền bằng nghề lập trình, thì PHP là lựa chọn an toàn và nhanh chóng hơn nhiều ngôn ngữ lập trình khác. 8. PHP có thể tạo REST và WEB Service Các Web Service (bao gồm các REST service) là các hệ thống trao đổi dữ liệu giữa máy với máy qua HTTP(S).
  • 21. Thông thường, các trang web động trao đổi dữ liệu với người dùng, ví dụ như thông qua các biểu mẫu (Form HTML). Mặt khác, các Web Service giao tiếp trực tiếp với các hệ thống khác như các web service, thiết bị và các ứng dụng từ xa khác. Một ví dụ thực tế: Tất cả các dịch vụ dự báo thời tiết đều có giao diện đẹp, các trang web dịch vụ định vị, vv.. Bạn có thể đã nhận thấy là ngay cả khi có hàng ngàn trang web dự báo thời tiết trên internet, nhưng đa phần họ cung cấp thông tin giống nhau. Đó không phải là một sự trùng hợp ngẫu nhiên: Chỉ một số công ty có đủ cơ sở hạ tầng đắt tiền để thu thập tất cả các dữ liệu liên quan đến thời tiết cần thiết để dự báo. Hầu hết các trang web thời tiết chỉ đọc dữ liệu dự báo từ nguồn do các công ty đó cung cấp và hiển thị nó trên các trang web của riêng họ. Và dĩ nhiên, các hoạt động trao đổi dữ liệu này thông qua Web service. Máy khách sẽ gửi một yêu cầu HTTP đến Service của nhà cung cấp và nhận lại dữ liệu cho phép. Vì chỉ trao đổi giữa Máy và Máy nên dữ liệu này không có lý do gì phải biểu diễn bằng mã HTML và CSS cả. Thay vào đó, Web Service sử dụng giao thức trao đổi dữ liệu bằng: • CSV: Một danh sách rất đơn giản các phần tử được phân tách bằng một điểm phân tách (như: data1; data2; data3;). Định dạng này chỉ được sử dụng cho các Service rất đơn giản. • XML: Một ngôn ngữ mã hóa phức tạp và mạnh mẽ, phù hợp với các Service rất phức tạp.
  • 22. • JSON: Một định dạng mã hóa hiện đại ngày nay rất hay được sử dụng, đơn giản hơn XML và được hỗ trợ tốt bởi các Framework và thư viện hiện đại. Viết một Web Service bằng PHP thực sự dễ dàng hơn bạn nghĩ. Trong thực tế, các thư viện PHP tiêu chuẩn sẵn có đều hỗ trợ cho cả định dạng XML và JSON. 9. Tạo hệ thống chạy nền với PHP (PHP Daemon) Daemon là các quá trình tiếp tục chạy nền mà không có sự tương tác của người dùng. Hãy nghĩ về một ứng dụng lập lịch công việc, như CRON trên Linux hoặc Task Scheduler trên Windows: Chúng chạy trong nền và thực hiện công việc của họ mà không tương tác trực tiếp với người dùng. Các quy trình như vậy được gọi là daemon trong các hệ thống Linux và Unix. (Bạn có thể nhận thấy rằng trên Linux, một số quy trình của LinkedIn kết thúc bằng một d, như crond, httpd, mysqld, đó là chữ "d" của daemon). Bây giờ, quay trở lại với PHP. Thông thường, tập lệnh PHP kết thúc sau khi PHP Module của Web Server đã chạy xong. Nó thường mất ít hơn một giây. Tuy nhiên, bạn có thể tạo các tập lệnh PHP không bao giờ kết thúc để chạy ở chế độ nền, giống như Daemon. PHP Daemon như vậy có thể hoàn thành rất nhiều nhiệm vụ. Ví dụ, chúng có thể theo dõi một số dữ liệu và gửi thông báo qua email khi có trường hợp cụ thể phát sinh, gần như trong thời gian thực.
  • 23. PHP Daemon sử dụng cấu trúc kiểu C, yêu cầu: • Một vòng lặp không bao giờ kết thúc, ví dụ vòng lặp while(). Vòng lặp có thể kết thúc trong các trường hợp cụ thể hoặc sau một thời gian, nhưng nó cũng có thể tiếp tục vô thời hạn. • Đồng hồ lặp: Một bộ đếm để thiết lập tốc độ lặp. Bạn không thể chỉ để vòng lặp lặp lặp lại mà không delay nó, nếu không, tập lệnh sẽ sử dụng tất cả sức mạnh của CPU của bạn. Để delay chúng, bạn có thể sử dụng các hàm sleep() và ussleep() để tạm dừng mỗi lần lặp trong một khoảng thời gian nhất định. Và trong vòng lặp, kịch bản bạn dựng sẵn sẽ thực hiện các nhiệm vụ của nó. Nghe có vẻ phức tạp, nhưng nó thực sự khá đơn giản. Hãy xem ví dụ sau: Nó có một PHP Daemon đơn giản theo dõi giá trị từ cơ sở dữ liệu và gửi email nếu giá trị này quá cao: <?php /* $PHPMailer: a PHPMailer object $PDO: a PDO connection resource */ /* Xóa giới hạn thời gian thực hi */ set_time_limit(0);
  • 24. /* Khoảng thời gian lặp (s) */ $sleep_time = 600; /* Ngưỡng giá trị */ $threshold = 100; while (TRUE) { /* Ngủ trong khoảng thời gian lặp */ sleep($sleep_time); try { /* Truy vấn*/ $query = 'SELECT value FROM values ORDER BY value_t imestamp DESC'; $result = $PDO->prepare($query, array(PDO::ATTR_CUR SOR => PDO::CURSOR_FWDONLY)); $result->execute(); $row = $result->fetch(PDO::FETCH_ASSOC); }
  • 25. catch (PDOException $e) { /* Nếu có lỗi, một ngoại lệ được ném ra */ echo 'PDO exception. Error message: "' . $e->getMes sage() . '". Error code: ' . strval($e->getCode()) . '.'; die(); } /* Kiểm tra giá trị so với Ngưỡng */ if ($row['value'] >= $threshold) { try { $PHPMailer->setFrom('noreply@yoursite.com'); $PHPMailer->addAddress('alerts@yoursite.com'); $PHPMailer->Subject = 'Value alert'; $PHPMailer->Body = 'Last value is: ' . $token; $PHPMailer->send(); } catch (Exception $e) {
  • 26. echo $e->errorMessage(); die(); } } } 10. Tạo hình ảnh bằng PHP Tôi cá là bạn không biết điều này: Bạn thực sự có thể tạo hình ảnh đồ họa trực tiếp từ PHP. Thư viện PHP tiêu chuẩn đã bao gồm một bộ công cụ các chức năng của Thư viện GD cho phép bạn tạo hình ảnh đồ họa như các tệp JPEG chỉ trong một vài dòng mã. Đúng là hiện nay, các hình ảnh đồ họa Frontend đang được xử lý bởi HTML5 và JavaScript. Tuy nhiên, các thao tác phụ trợ (như tạo, thay đổi kích thước, nén dung lượng) vẫn được sử dụng rộng rãi cho đến ngày nay. Note: Giống như tất cả các plugin WordPress thu nhỏ hình ảnh, nén hình ảnh để tối ưu tốc độ tải trang. 11. PHP có thể tạo kịch bản hệ thống Các tập lệnh PHP thường được điều hành bởi một máy chủ web, nhưng đó không phải là trường hợp này. Bạn cũng có thể chạy các tập lệnh PHP bằng Command line PHP interpreter hoặc PHP-CLI:
  • 27. Bạn có thể sử dụng PHP để thực hiện các nhiệm vụ bảo trì hệ thống, chẳng hạn như: • Kiểm tra hệ thống tập tin • Ghi nhật ký phân tích và bảo trì • Tự động tải xuống và lưu trữ tài nguyên từ xa • Tải lên và tải xuống định kỳ • Bảo trì cơ sở dữ liệu Bạn có thể thực thi các tập lệnh này bằng CRON hoặc các trình lập lịch khác hoặc sử dụng bất kỳ loại trình kích hoạt nào giống như bạn làm với các tập lệnh C hoặc BASH shell. 12. Kết luận Trong bài viết này, bạn đã thấy có rất nhiều nhiệm vụ khác nhau mà PHP có thể làm. Nó không chỉ là về việc lập trình các trang web động. Xây dụng Backend, REST Service và Xác thực thông tin người dùng chỉ là một số cách có thể sử dụng của ngôn ngữ PHP. Và hãy tin tôi: Nếu bạn học được cách sử dụng PHP trong nhiều kịch bản khác nhau này, bạn chắc chắn sẽ nổi bật so với các lập trình viên PHP khác. Đây cũng là một cách để thăng tiến sự nghiệp hoặc tăng thêm thu nhập. Note: Nếu hướng dẫn này có ích cho bạn, hãy dành một chút thời gian của bạn để chia sẻ nó... cảm ơn bạn! Alex ---
  • 28. HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay! Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT: 02435574074 - 0914939543 - 0353655150 Email: hello@niithanoi.edu.vn Website: https://niithanoi.edu.vn Fanpage: https://facebook.com/NIIT.ICT/ #niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp