Làm cách nào để kiểm tra url tồn tại trong PHP?

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

Làm cách nào để kiểm tra xem tệp có tồn tại trong URL không?

get_headers[] sẽ trả về một mảng có tiêu đề từ một yêu cầu HTTP . 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.

Làm cách nào để kiểm tra chuỗi có phải là URL hay không trong PHP?

$text = "cái gì đó. com"; //đây là url if [. IsUrl[$text]]{ echo "Không phải url";

Làm cách nào để kiểm tra URL hình ảnh có hợp lệ trong PHP không?

Trong phương thức đầu tiên, chúng ta có một hàm dựng sẵn trong PHP có tên là getimagesize[] . Bằng cách sử dụng chức năng này, chúng tôi có thể kiểm tra xem hình ảnh là tệp hình ảnh hợp lệ hay giả mạo. Trong phương pháp thứ hai được thực hiện bằng cách cuộn tròn liên kết hoặc CURL, chúng tôi có thể đạt được điều này.

Làm cách nào để lấy tên miền từ URL trong PHP?

Tất cả mã PHP được nhóm lại với nhau trong hàm getDomain[] . Thông số $url phải được chuyển đến hàm getDomain[], từ đó bạn muốn lấy tên miền. Hàm getDomain[] trả về tên miền nếu tìm thấy và FALSE nếu không tìm thấy.

Chủ Đề