1. Trang chủ
  2. » Công Nghệ Thông Tin

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

28 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 422,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 tài liệu 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. PHP có thể được sử dụng làm nhiều thứ như tạo ứng dụng Real-time, tạo REST và Web Service, Theme Wordpress, Plugin...

Trang 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

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

Trang 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

Trang 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ì?

Trang 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:

Trang 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

Trang 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ùngmậ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:

Trang 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))

/* Đầ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));

Trang 8

/* Bây giờ chúng ta tạo Cookie và gửi nó đến trì

nh duyệt của người dùng*/

Trang 9

/* 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))

{

Trang 10

/* 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', 01'));

Trang 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

Trang 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:

Trang 13

$query = 'INSERT INTO user_tokens (user_id, token_timesta

mp, token_value) VALUES (?, NOW(), ?)';

Trang 14

}

catch (PDOException $e)

{

/* Nếu có lỗi, 1 ngoại lệ được ném ra */

echo 'PDO exception Error message: "' $e->getMessage() '" Error code: ' strval($e->getCode()) '.'; die();

$PHPMailer->Subject = 'Access Token';

/* Thiết lập nội dung tin nhắn */

Trang 15

$PHPMailer->Body = 'Vui lòng sử dụng mã sau để đăng nhập: ' $token;

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à:

Trang 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 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

Trang 17

$PDO->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); }

catch (PDOException $e)

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

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

Trang 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:

Trang 19

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

Trang 20

Vậy tôi đã làm gì sau đó?

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)

Trang 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

Đó 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

Trang 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

Trang 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

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);

Trang 24

/* Khoảng thời gian lặp (s) */

Trang 25

catch (PDOException $e)

{

/* Nếu có lỗi, một ngoại lệ được ném ra */

echo 'PDO exception Error message: "' $e->getMessage() '" Error code: ' strval($e->getCode()) '.'; die();

$PHPMailer->Body = 'Last value is: ' $token; $PHPMailer->send();

}

catch (Exception $e)

{

Trang 26

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

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:

Trang 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

Ngày đăng: 20/05/2021, 02:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w