Từ mục Codex để xác thực dữ liệu: URL :
esc_url( $url, (array) $protocols =
null )
(kể từ 2.8)
Luôn sử dụng esc_url khi vệ sinh URL (trong các nút văn bản, nút thuộc tính hoặc bất kỳ nơi nào khác). Từ chối các URL không có một trong các giao thức được liệt kê trong danh sách trắng (mặc định là http, https, ftp, ftps, mailto, news, irc, gopher, nntp, feed và telnet), loại bỏ các ký tự không hợp lệ và loại bỏ các ký tự nguy hiểm. Không dùng nữa kể từ 3.0: clean_url () Hàm này mã hóa các ký tự dưới dạng các thực thể HTML: sử dụng nó khi tạo tài liệu HTML hoặc XML (X). Mã hóa ký hiệu (&) và dấu ngoặc đơn (') dưới dạng tham chiếu thực thể số (&,').
esc_url_raw( $url, (array) $protocols
= null )
(kể từ 2.8)
Để chèn một URL trong cơ sở dữ liệu. Hàm này không mã hóa các ký tự dưới dạng các thực thể HTML: sử dụng nó khi lưu trữ URL hoặc trong các trường hợp khác khi bạn cần URL không được mã hóa. Chức năng này có thể được sao chép trong hàm Clean_url cũ bằng cách đặt $ bối cảnh thành db.
Vì vậy, sự khác biệt chính xuất hiện là:
esc_url()
mã hóa các thực thể HTML, trong khi esc_url_raw()
không
esc_url()
được dành cho
đầu ra , trong khi esc_url_raw()
được dành cho lưu trữ cơ sở dữ liệu
BIÊN TẬP:
Vì bạn đang mã hóa cứng (hoặc lưu / lưu trữ riêng biệt) URL thực tế từ chuỗi truy vấn và sau đó nối thêm chuỗi truy vấn qua [add_query_arg()][2]
, có thể tốt hơn là thoát chuỗi truy vấn được nối của bạn qua esc_js()
, thay vì esc_url()
?
Ví dụ:
add_query_arg( esc_js( 'apples' ), esc_js( '420' ), $myurl )
esc_url()
nó không hoạt động chính xác khi bạn có các đối số truy vấn trong một URL mà bạn muốn xuất ra