Cách mã hóa URL trong PHP?

Tiếp tục đọc để biết cách bạn có thể mã hóa một URL trong PHP và tránh các lỗi hoặc sự cố không mong muốn

nội dung

Làm cách nào để thực hiện mã hóa URL trong PHP?

Chức năng mã hóa URL PHP có thể được sử dụng để mã hóa URL. Tất cả những gì bạn phải làm là chuyển chuỗi được yêu cầu tới hàm mã hóa URL PHP để mã hóa nó. Hàm đã nói mã hóa tất cả các ký tự đặc biệt trong chuỗi đã cho ngoại trừ “-”,”. ” và ký tự “_”

Do đó, bạn không cần phải kiểm tra thủ công xem các ký tự trong URL của mình có phải là các ký tự URL hợp lệ hay không khi có chức năng đã cho. Hàm đã nêu thay thế mọi ký tự không phải chữ và số bằng tổ hợp ký tự phần trăm “%” và hai chữ số hex như “%xx. ” Ngoài ra, bạn sẽ nhận thấy rằng tất cả khoảng trắng sẽ được thay thế bằng dấu cộng “+” trong các URL được mã hóa

Đây là cú pháp đơn giản nhất của hàm mã hóa URL tuyệt vời. mã url(chuỗi).

– Ví dụ mã hóa

Chẳng hạn, bạn muốn mã hóa một URL chứa một số ký tự URL không hợp lệ. Do đó, bạn sẽ chọn cùng một URL, chuyển nó tới hàm urlencode() và nhận một URL chỉ chứa các ký tự URL hợp lệ

Vui lòng sử dụng đoạn mã dưới đây để mã hóa một URL trong PHP

// xác định chuỗi đầu vào$input = “<<768FD#%^”;?>
// xác định chuỗi đầu vào
$input = “<
// sử dụng hàm urlencode()< . //www. lấy mẫu. com?tên người dùng=”. urlencode($input);
echo “https://www.sampleurl.com?username=” . urlencode($input);
?>

URL được mã hóa sẽ được nhìn thấy như thế này trên màn hình

https. //www. lấy mẫu. com?username=%3C%3C768FD%23%25%5E

Làm cách nào để mã hóa bằng cách làm theo RFC 3986?

Bạn có thể sử dụng hàm rawurlencode() để mã hóa URL PHP trong khi tuân theo RFC 3986. Hàm được đề cập chấp nhận một đối số chuỗi tương tự như hàm urlencode(). Nó thay thế tất cả các ký tự không phải chữ và số ngoại trừ. ,-,_ và ~ với dấu phần trăm “%” và hai chữ số hex như “%xx”

Bạn có thể tham khảo cú pháp tại đây. rawurlencode(chuỗi).

– Giải pháp mã hóa bằng Rawurlencode()

Hãy thử nghĩ về việc có một chuỗi mà bạn muốn mã hóa theo quy tắc RFC 3986. Vì vậy, bạn sẽ thực thi hàm rawurlencode() với chuỗi được chỉ định và chuỗi mã hóa PHP ngay lập tức

Đây là đoạn mã hóa sử dụng hàm rawurlencode() để mã hóa URL PHP

// xác định chuỗi tên$name = “abc&%mm lkjop”;// đầu ra. https. //www. mới. com?name=abc%26%25mm+lkjop?>
// defining the name string
$name = “abc&%mm lkjop”;
// using the rawurlencode() function
echo “https://www.newurl.com?name=” . urlencode($name);
// output: https://www.newurl.com?name=abc%26%25mm+lkjop
?>

Cách sử dụng hàm Htmlentities()

Hàm htmlentities() cũng giúp mã hóa chuỗi truy vấn trong URL. Hàm đã nói sẽ chuyển đổi tất cả các thực thể ký tự HTML có trong chuỗi được truyền cho nó. Nó chấp nhận các đối số chuỗi, cờ, mã hóa và double_encode. Nhưng chỉ cần một chuỗi để thực thi hàm đã cho

Bạn có thể xem cú pháp của htmlentities() tại đây. htmlentities(chuỗi, cờ, mã hóa, double_codes).

– Ví dụ mã hóa sử dụng tham số Htmlentities()

Tham số đầu tiên của hàm htmlentities() chiếm chuỗi cần mã hóa. Tham số thứ hai “flags” cho phép bạn quyết định cách bạn muốn xử lý các chuỗi và trích dẫn đơn vị mã không hợp lệ. Hơn nữa, cùng một tham số cho phép bạn xử lý loại tài liệu đang được sử dụng

Lưu ý rằng giá trị mặc định cho tham số flags được đặt thành ENT_QUOTES. ENT_SUBSTITUTE. ENT_HTML401 trong PHP >= 8. 1. 0 và ENT_COMPAT trong các phiên bản trước của PHP

Mặt khác, đối số “mã hóa” xác định bộ ký tự bằng cách đặt nó thành tùy chọn cấu hình “default_charset” theo mặc định trong các phiên bản PHP dưới 8. Tuy nhiên, giá trị mã hóa được đặt thành null trong PHP 8 trở đi. Cuối cùng, tham số “double_codes” được đặt thành true để cho phép dịch mọi thứ, kể cả các thực thể HTML

Làm cách nào để mã hóa chuỗi trong PHP bằng cách sử dụng Htmlentities()?

Bạn chỉ cần chuyển chuỗi bắt buộc tới hàm htmlentities() nếu hài lòng với giá trị mặc định của các tham số khác. Trong trường hợp khác, chuyển tất cả các giá trị tham số mong muốn và thực hiện hàm đã cho

– Ví dụ mã hóa sử dụng Htmlentities

Ví dụ. bạn có một chuỗi truy vấn chứa các thực thể ký tự HTML. Bây giờ, bạn muốn mã hóa chuỗi PHP trong khi đảm bảo rằng mọi thứ cùng với các thực thể ký tự HTML được chuyển đổi. Vì vậy, bạn sẽ sử dụng hàm htmlentities() như trong đoạn mã được đính kèm bên dưới

// đặt loại nội dung thành văn bản thuần túyheader(‘Content-Type. text/plain');// định nghĩa các biến được chuyển tới URL$user = “#<>980ê”;980ê©=?>
// setting the content type to plain text
header(‘Content-Type: text/plain’);
// defining variables to be passed to the URL
$user = “#<>980ê”;
$copy = “”;
// creating a query string with variable names
$query_string1 = “user=$user©=$copy”;
// using the htmlentities function
echo htmlentities($query_string1);
// output: user=#<>980ê©=
?>

Lưu ý quan trọng

Loại nội dung được đặt thành thuần túy/văn bản vì nếu không thì bạn có thể không thấy tác dụng của hàm đã nêu trên chuỗi truy vấn

Các tùy chọn khả dụng cho cờ và mã hóa là gì?

Nếu bạn muốn thay đổi các giá trị thì đây là danh sách các cờ và mã hóa có sẵn

– Tham số cờ

Bạn có thể sử dụng một hoặc nhiều giá trị từ danh sách bên dưới làm cờ

  • ENT_COMPAT. Nó sẽ chỉ dịch các dấu ngoặc kép
  • ENT_QUOTES. Nó sẽ dịch cả dấu ngoặc đơn và dấu ngoặc kép
  • ENT_NOQUOTES. Nó sẽ không dịch các trích dẫn kép cũng như các trích dẫn đơn
  • ENT_IGNORE. Nó không nên được sử dụng vì bạn sẽ không nhận được chuỗi trống ngay cả khi chuỗi đơn vị mã không hợp lệ
  • ENT_SUBSTITUTE. Nó trả về Ký tự thay thế Unicode U+FFFD cho UTF-8 hoặc � cho các bộ ký tự khác trong trường hợp chuỗi đơn vị mã không hợp lệ
  • ENT_DISALLOWED. Nó thay thế các điểm mã không hợp lệ theo loại tài liệu nói trên bằng Ký tự thay thế Unicode U+FFFD cho UTF-8 hoặc � cho các bộ ký tự khác
  • ENT_HTML401. Nó cho phép xử lý mã dưới dạng HTML 4. 01
  • ENT_XML. Nó cho phép bạn xử lý mã dưới dạng XML 1
  • ENT_XHTML. Nó cho phép xử lý mã dưới dạng XHTML
  • ENT_HTML5. Nó cho phép xử lý mã dưới dạng HTML 5

– Tham số mã hóa

Dưới đây là các bộ ký tự mà bạn có thể chuyển đến hàm htmlentities() thành chuỗi mã hóa PHP

  • ISO-8859-1
  • ISO-8859-5
  • ISO-8859-15
  • UTF-8
  • cp866
  • cp1251
  • cp1252
  • KOI8-R
  • 5 LỚN
  • GB2312
  • BIG5-HKSCS
  • Shift-JIS
  • EUC-JP
  • MacRoman

Cách sử dụng hàm Htmlspecialchars()

The htmlspecialchars() function is also used for PHP encoding URL. The given function is similar to the htmlentities() except for the type of characters to be encoded. The htmlspecialchars() encodes only the special characters like “<”, “>”, etc leaving behind the characters whose identities need to be preserved.

Ngay cả các tham số, giá trị mặc định của tham số, các tùy chọn có thể có cho cờ và mã hóa vẫn giữ nguyên cho cả hàm htmlentities() và htmlspecialchars()

Tuy nhiên, đây là cú pháp đảm bảo cho bạn. htmlký tự đặc biệt(chuỗi, cờ, mã hóa, double_codes).

Lưu ý quan trọng. trong khi được sử dụng với hàm htmlspecialchars(), các bộ ký tự ISO-8859-1, UTF-8, ISO-8859-15, cp866, cp1252, cp1251 và KOI8-R có cùng ý nghĩa

– Ví dụ viết mã về việc sử dụng htmlspecialchars()

Ví dụ. bạn đã chuẩn bị một chuỗi truy vấn với các loại ký hiệu đặc biệt khác nhau như “♣”, “∇”, “ℜ”, “♦” và “⇔” cùng với một số ký tự đặc biệt phổ biến. Bây giờ, bạn muốn mã hóa chuỗi PHP trong khi vẫn giữ nguyên các ký tự đã nêu trước đó. Vì vậy, bạn sẽ sử dụng hàm htmlspecialchars() để mã hóa chuỗi PHP một cách hoàn hảo

Đây là một đoạn mã theo ví dụ trên để hiển thị cho bạn kết quả được trả về bởi hàm htmlspecialchars()

// đặt loại nội dung thành văn bản thuần túyheader(‘Content-Type. text/plain');// định nghĩa một biến$var = “”; . var=&sym=<♣∇ℜ♦⇔>?>
// setting the content type to plain text
header(‘Content-Type: text/plain’);
// defining a variable
$var = “”;
// creating a query string with special symbols
$query_string2 = “var=$var&sym=<♣∇ℜ♦⇔>”;
// executing the htmlspecialchars() function
echo htmlspecialchars($query_string2);
// output: var=&sym=<♣∇ℜ♦⇔>
?>

Khi nào bạn nên sử dụng htmlentities()?

Bạn nên sử dụng hàm htmlentities() khi tên biến của bạn giống với một số thực thể HTML. Đó là do các hàm urlencode() hoặc rawurlencode() sẽ chuyển đổi các loại biến đó thành các ký tự đặc biệt. Do đó, bạn sẽ nhận được các URL được mã hóa với các ký hiệu không cần thiết

Phần kết luận

Kết thúc chủ đề mã hóa URL PHP, thật thú vị khi thấy nhiều loại chức năng mã hóa URL giống nhau ở một số điểm và khác nhau ở những điểm khác. Dưới đây là những sự thật mà bạn nên nhớ trước khi sử dụng bất kỳ chức năng nào ở trên trong chương trình PHP của mình

  • Hàm urlencode() có thể được sử dụng để mã hóa URL PHP
  • Bạn có thể sử dụng hàm rawurlencode() để mã hóa URL trong PHP đồng thời tuân theo các quy tắc được chỉ định bởi RFC 3986
  • Hàm htmlentities() có thể được sử dụng để mã hóa tất cả các thực thể ký tự HTML trong chuỗi đã cho
  • Hàm htmlspecialchars() có thể giúp giữ nguyên các ký tự đặc biệt trong khi chỉ mã hóa một số ký tự đặc biệt cụ thể

Cách mã hóa URL trong PHP?
Thật vậy, mã hóa URL là một quá trình cần thiết thường tự đặt ra như một nhiệm vụ khó khăn. Nhưng các chức năng tích hợp sẵn của PHP đã làm cho việc mã hóa URL trở nên dễ dàng hơn rất nhiều bằng cách cung cấp các cú pháp dễ thực hiện

5/5 - (15 phiếu)

Cách mã hóa URL trong PHP?

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

Làm cách nào để mã hóa và giải mã URL trong PHP?

Hàm urldecode() là một hàm có sẵn trong PHP dùng để giải mã url được mã hóa bởi hàm encoded() . Thông số. Hàm này chấp nhận tham số duy nhất $input giữ url được giải mã. Giá trị trả về. Hàm này trả về chuỗi đã giải mã thành công.

Làm cách nào để mã hóa id trong URL trong PHP?

inc. trang php. $customer_id = $_GET['id']; . $decryped_id .

Mã hóa URL %22 là gì?

Mã hóa URL từ %00 đến %8f

Làm cách nào để nhận các tham số URL PHP?

Các tham số từ một chuỗi URL có thể được truy xuất trong PHP bằng cách sử dụng các hàm parse_url() và parse_str() . Ghi chú. URL trang và các tham số được phân tách bằng dấu ? . hàm parse_url(). Hàm parse_url() được sử dụng để trả về các thành phần của URL bằng cách phân tích cú pháp URL đó.