Trong bài viết này, chúng ta sẽ xem cách Kiểm tra sự tồn tại của URL bằng PHP. Sự tồn tại ở đây có nghĩa là chúng tôi đang kiểm tra nội dung mà chúng tôi đang yêu cầu có sẵn trên máy chủ hay không
Chúng ta có thể kiểm tra sự tồn tại của URL bằng hai cách sử dụng PHP. Đầu tiên là hàm get_header và thứ hai là CURL .
Về cơ bản, chúng tôi đang kiểm tra tiêu đề HTTP của URL và dựa vào đó chúng tôi có thể xác định sự tồn tại của url. 200 Code là viết tắt của tiêu đề OK và 404 là viết tắt của Not Found.
Hãy tìm hiểu cả hai phương pháp.
hàm get_headers
Sử dụng hàm get_headers này, chúng ta có thể lấy thông tin tiêu đề HTTP của URL đã cho
1
2
3
4
5
6
7
8
9
10
$url = "http. //www. miền. com/demo. jpg";
$headers = @get_headers[$url];
if[strpos[$headers[0],'404'] === false]
{
echo "URL Exists";
}
else
{
echo "URL Not Exists";
}
Ghi chú. Nếu bạn đặt tham số thứ hai của get_headers[] thành true thì bạn sẽ nhận được kết quả trong mảng kết hợp. Chỉ cần cố gắng cho nó
Xoăn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$url = "http. //www. miền. com/demo. jpg";
$curl = curl_init[$url];
curl_setopt[$curl, CURLOPT_NOBODY, true];
$result = curl_exec[$curl];
if [$result !== false]
{
$statusCode = curl_getinfo[$curl, CURLINFO_HTTP_CODE];
if [$statusCode == 404]
{
echo "URL Not Exists"
}
else
{
echo "URL Exists";
}
}
else
{
echo "URL not Exists";
}
Ghi chú. Chúng tôi đã sử dụng CURLOPT_NOBODY để chỉ kiểm tra kết nối và không tìm nạp toàn bộ nội dung
Vậy là chúng ta đã hoàn thành việc kiểm tra sự tồn tại của URL bằng PHP, hãy chia sẻ quan điểm/nhận xét/đề xuất của bạn
Giới thiệu về tác giả. Avinash
Nhà phát triển web freelance full stack có kinh nghiệm với thành tích tạo ra kết quả xuất sắc trong hơn 11 năm. Kỹ năng giao tiếp và hợp tác xuất sắc, quản lý với nhóm hơn 20 người. Tôi có động lực để tạo ra tác động tích cực đến doanh thu của bạn thông qua dự án phát triển cổng thông tin khách hàng
Việc sử dụng file_exists[] chỉ có tác dụng đối với các liên kết thư mục [các tệp trên hệ thống] và sử dụng cURL hơi quá khi tất cả những gì bạn cần làm là lấy mã HTTP của yêu cầu URL
get_headers[] sẽ trả về một mảng có tiêu đề từ yêu cầu HTTP
Một ví dụ phản hồi get_headers[]
[ "HTTP/1.1 200 OK", "Date: Mon, 07 Jun 2021 13:30:57 GMT", "Server: Apache/2.4.41 [Ubuntu]", "Last-Modified: Thu, 29 Apr 2021 06:27:59 GMT", "ETag: 0-5c11698b76a05", "Accept-Ranges: bytes", "Content-Length: 4565", "Connection: close", "Content-Type: application/json" ]
Chỉ mục đầu tiên có mã phản hồi HTTP, mã HTTP 200 có nghĩa là yêu cầu đã thành công [tệp tồn tại]. Bạn sẽ nhận được mã 404 nếu không có gì tồn tại cho yêu cầu
Trong bài đăng này, chúng tôi sẽ chỉ cho bạn phương pháp khác nhau để kiểm tra url, URL tồn tại hay không tồn tại [url bị hỏng hay không]
Phương pháp 1
Đây là phương pháp rất nhanh để kiểm tra url của bạn bằng cách sử dụng hàm filter_var[$your_url, FILTER_VALIDATE_URL];
GHI CHÚ. FILTER_VALIDATE_URL sẽ không xác thực đối với url giống như giao thức ssh. //, ftp. // vân vân
Ví dụ
// add your url. $your_url = "//www.onlinecode"; if [filter_var[$your_url, FILTER_VALIDATE_URL] === FALSE] { // broken url. echo ['Not a valid URL']; } else { // Not broken url. echo ['valid URL']; }
Phương pháp 2
Nếu chúng ta phải kiểm tra hình ảnh, pdf, txt hoặc các loại url khác thì phương pháp này sẽ giúp bạn mất. Trong phương pháp này, chúng tôi sử dụng fopen với các phương thức rad và kiểm tra xem có kết quả nào không
Ví dụ
$url_handle = @fopen['//www.onlinecode.org/example/www-onlinecode-org-image-test.png','r']; if[!$url_handle] { // broken url. echo ['Not a valid URL']; } else { // Not broken url. echo ['valid URL']; }
Phương pháp 3
Trong phương pháp này, chúng tôi sử dụng file_get_contents và kiểm tra url tồn tại hay không. Trong phương pháp này, Nó cũng hoạt động đối với hình ảnh, pdf, txt hoặc loại url khác
Ví dụ
function check_url_exists[$your_url] { if [@file_get_contents[$your_url,false,NULL,0,1]] { return true; } return false; } // add your url. $your_url = "//www.onlinecode"; var_dump [check_url_exists[$your_url]];
Phương pháp 3
Trong phương pháp này, chúng tôi sử dụng curl, nó sẽ hoạt động với mọi loại url
// add your url. $your_url = "//www.onlinecode.org/example/www-onlinecode-org-image-test.png"; $connection = curl_init[]; curl_setopt[$connection, CURLOPT_URL, $your_url]; // add url curl_setopt[$connection, CURLOPT_RETURNTRANSFER, 1]; curl_setopt[$connection, CURLOPT_FOLLOWLOCATION, 1]; $curl_result = curl_exec[$connection]; $curl_info = curl_getinfo[$connection]; if[$curl_info['http_code'] == 404] { // broken url. echo ['Not a valid URL']; } else { // Not broken url. echo ['valid URL']; }
Phương pháp 4
Phương pháp này nâng cao để tìm url tồn tại hay không với mã trạng thái HTTP. Trong phương pháp này, nó sẽ cho bạn thấy kết quả tại sao url không tồn tại với mã trạng thái HTTP, ví dụ cho trang 404 không tìm thấy