PHP kiểm tra xem tệp có tồn tại url không

Đoạn mã PHP nhanh này có thể được sử dụng để kiểm tra xem có tồn tại một URL cụ thể hay không. Tôi sử dụng điều này trong một trong các dự án của mình để kiểm tra sự tồn tại của rô bốt. txt trên trang web. Có thể được sửa đổi để kiểm tra các tệp trên bất kỳ trang web có thể truy cập công khai nào

$protocol = is_ssl() ? 'https://' : 'http://'; // uses WP function is_ssl()
$robots   = $protocol . $_SERVER['SERVER_NAME'] .'/robots.txt';
$exists   = false;

if (!$exists && in_array('curl', get_loaded_extensions())) {
	
	$ch = curl_init($robots);   
	 
	curl_setopt($ch, CURLOPT_NOBODY, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_exec($ch);
	
	$response = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	
	if ($response === 200) $exists = true;
	
	curl_close($ch);
	
}

if (!$exists && function_exists('get_headers')) {
	
	$headers = @get_headers($robots);
	
	if ($headers) {
		
		if (strpos($headers[0], '404') !== false) {
			
			$exists = true;
			
		}
		
	}
	
}

Đây là cách nó hoạt động

  1. Đặt ba biến.
    // URL of the remote file
    $FileURL = 'https://www.website.com/repository/file.zip';
    
    // Open file
    $FileHandle = @fopen($FileURL, 'r');
    
    // Check if file exists
    if(!$FileHandle){
        echo 'ERROR: File not found';
    }else{
        echo 'SUCCESS: File exists';
    }
    41,
    // URL of the remote file
    $FileURL = 'https://www.website.com/repository/file.zip';
    
    // Open file
    $FileHandle = @fopen($FileURL, 'r');
    
    // Check if file exists
    if(!$FileHandle){
        echo 'ERROR: File not found';
    }else{
        echo 'SUCCESS: File exists';
    }
    42 và
    // URL of the remote file
    $FileURL = 'https://www.website.com/repository/file.zip';
    
    // Open file
    $FileHandle = @fopen($FileURL, 'r');
    
    // Check if file exists
    if(!$FileHandle){
        echo 'ERROR: File not found';
    }else{
        echo 'SUCCESS: File exists';
    }
    43
  2. Kiểm tra xem có sẵn phiên bản
    // URL of the remote file
    $FileURL = 'https://www.website.com/repository/file.zip';
    
    // Open file
    $FileHandle = @fopen($FileURL, 'r');
    
    // Check if file exists
    if(!$FileHandle){
        echo 'ERROR: File not found';
    }else{
        echo 'SUCCESS: File exists';
    }
    44 của PHP không;
  3. Kiểm tra xem có sẵn
    // URL of the remote file
    $FileURL = 'https://www.website.com/repository/file.zip';
    
    // Open file
    $FileHandle = @fopen($FileURL, 'r');
    
    // Check if file exists
    if(!$FileHandle){
        echo 'ERROR: File not found';
    }else{
        echo 'SUCCESS: File exists';
    }
    46 không;

Vì vậy, kết quả cuối cùng của tập lệnh này sẽ là biến

// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
43 sẽ trả về là
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
49 nếu tệp/URL được chỉ định tồn tại. Nếu không thì
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
43 vẫn là
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
411

ghi chú. Nếu WordPress không khả dụng, bạn sẽ cần sửa đổi hoặc xóa biến

// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
41 cho phù hợp. Cũng có thể muốn thay đổi biến
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
42 trong suốt tùy thuộc vào cách sử dụng. Và cuối cùng, đảm bảo chỉ định URL của bất kỳ tài nguyên/tệp nào bạn muốn kiểm tra

Trong PHP, hàm file_exists() thường được sử dụng để xác định xem một tệp hoặc thư mục có tồn tại trên máy chủ hay không. Tuy nhiên, không thể sử dụng hàm file_exists() để kiểm tra sự hiện diện của tệp trên máy chủ từ xa và do đó phải áp dụng các giải pháp thay thế. Dưới đây là ba phương pháp, hoàn chỉnh với các đoạn mã, có thể hữu ích

1) Phương thức fopen() có lẽ là cách đơn giản nhất để sử dụng PHP để nhanh chóng xác minh xem một URL tệp nhất định có tồn tại trên máy chủ từ xa hay không. Đoạn mã sau đây cho thấy cách sử dụng fopen() của PHP cho mục đích này

// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}

2) Có thể kiểm tra xem tệp có tồn tại trên máy chủ từ xa hay không bằng cách sử dụng cURL. Đoạn mã PHP sau minh họa cách kiểm tra xem có tồn tại URL tệp từ xa hay không bằng cách sử dụng cURL

// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Initialize cURL
$handle = curl_init($FileURL);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_exec($handle);
$response = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);

// Check the response code
if($response == 200){
  echo 'SUCCESS: File exists';
}else{
  echo 'ERROR: File not found';
}

3) Cuối cùng, một phương pháp nhanh sử dụng hàm get_headers() thông qua một hàm cũng có thể chứng minh là một giải pháp thay thế phù hợp để kiểm tra xem tệp có tồn tại trên máy chủ từ xa hay không. Đoạn mã sau trình bày cách triển khai giải pháp này

Nhiều lần bạn sẽ cần di chuyển các tệp xung quanh hoặc lưu trữ một số dữ liệu bên trong chúng trong PHP. Trong cả hai trường hợp, việc biết trước tệp có tồn tại hay không có thể giúp chúng tôi tránh một số hành vi không mong muốn

PHP đi kèm với nhiều chức năng để xử lý các loại truy vấn khác nhau liên quan đến tệp. Trong hướng dẫn này, tôi sẽ cung cấp cho bạn tổng quan ngắn gọn về tất cả các chức năng này để bạn có thể chọn một chức năng hoạt động tốt nhất trong trường hợp của mình

Tầm quan trọng của việc kiểm tra xem tệp có tồn tại không

Có rất nhiều tình huống trong đó việc kiểm tra xem tệp có tồn tại hay không trước khi thực hiện bất kỳ điều gì khác có thể quan trọng. Giả sử trang web của bạn cho phép người dùng tải lên các tệp hình ảnh trên máy chủ của bạn để họ có thể truy cập sau này. Công bằng mà nói, luôn có khả năng xảy ra xung đột tên tệp nếu nhiều người dùng đang sử dụng dịch vụ của bạn để tải nhiều tệp lên thường xuyên

Trong những trường hợp như vậy, điều quan trọng là phải kiểm tra xem đã có tệp khác ở vị trí bạn muốn lưu tệp được tải lên gần đây của người dùng chưa. Sau đó, bạn sẽ có tùy chọn thực hiện một số bước như đổi tên tệp thành tên khác hoặc cho người dùng biết rằng tệp tải lên của họ sẽ ghi đè lên tệp hiện có

Hãy xem xét một tình huống khác mà bạn phải thêm dữ liệu vào một tệp trong PHP. Nếu tệp bạn đã tạo để ghi tất cả dữ liệu của mình bị xóa vì lý do nào đó, các chức năng như


11 sẽ chỉ tạo một tệp mới với tên được chỉ định và lưu trữ dữ liệu của bạn bên trong tệp mới tạo. Điều này có thể được mong muốn trong một số trường hợp, nhưng không phải lúc nào cũng vậy. Vì vậy, thật hợp lý khi kiểm tra xem tệp có tồn tại trước hay không nếu bạn đã mong đợi nó ở đó trước khi bạn bắt đầu ghi dữ liệu của mình

Kiểm tra xem tệp có tồn tại trong PHP không

Có ba chức năng khác nhau mà bạn có thể sử dụng để kiểm tra xem một tệp có tồn tại trong PHP hay không

Chức năng đầu tiên là


12. Hàm này chấp nhận một tham số duy nhất là đường dẫn chứa tệp của bạn. Hãy nhớ rằng nó sẽ trả về true cho cả tệp và thư mục hiện có. Điều này có thể hoặc có thể không đủ cho nhu cầu của bạn

Bạn có thể cân nhắc sử dụng hàm


13 nếu muốn chắc chắn rằng đường dẫn bạn đã chỉ định trỏ tới một tệp chứ không phải thư mục. Tương tự, bạn có thể sử dụng hàm

14 để kiểm tra xem đường dẫn bạn đã chỉ định có tồn tại không và liệu nó có trỏ đến một thư mục không

1

__
2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
0
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
3
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
4
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
5
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
6

0

1

2

3

4

5

6

7

8

9

3
2
1
2
2
2
3
2
4
2
5
2
6

3
2
8___99
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
00

đầu ra

1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
02____9
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
04
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
0
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
06

Trong ví dụ trên, tôi cố ý đặt tên cho một trong các thư mục là ô vuông. zip để cho thấy rằng điều quan trọng là bạn phải tự kiểm tra thay vì cho rằng tên tệp được cung cấp thực sự là tên tệp hoặc thư mục

Điều quan trọng cần nhớ là cả


13 và

14 sẽ trả về

17 ngay cả đối với các đường dẫn thực sự tồn tại khi thư mục mẹ không có quyền phù hợp

Kiểm tra xem tệp có tồn tại và có thể đọc hoặc ghi được không

Hai chức năng khác có tên là


18 và

19 có thể được sử dụng để lấy một số thông tin bổ sung về một tệp, bên cạnh việc kiểm tra xem nó có tồn tại không

Đúng như tên gọi, hàm


18 sẽ kiểm tra hai thứ. thứ nhất, tệp hoặc thư mục thực sự tồn tại và thứ hai, tệp có thể đọc được. Tương tự, hàm

19 cũng kiểm tra hai điều, đó là tệp hoặc thư mục tồn tại và có thể ghi được

1

2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
0
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
4
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
14
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
5
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
16

0

3

2

4
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
21

5
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
23

7

3

9
2
1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
00

đầu ra

1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
30____9
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
32

Tôi khuyên bạn nên cẩn thận khi diễn giải giá trị trả về của hai hàm này. Ví dụ: bản năng đầu tiên của chúng tôi khi


18 trả về false là nghĩ rằng tệp chúng tôi đã truy vấn không thể đọc được. Tuy nhiên hàm cũng trả về false nếu file không tồn tại. Điều quan trọng là luôn ghi nhớ khía cạnh này của các chức năng này

Coi chừng kết quả được lưu trong bộ nhớ cache

Giá trị trả về mà bạn nhận được từ lệnh gọi đến tất cả năm hàm này—cụ thể là,


12,

13,

14,

18 và

27—được lưu trong bộ nhớ cache. Điều này có nghĩa là các lệnh gọi lặp lại tới một hàm, chẳng hạn như

13, có thể cho bạn thấy kết quả cũ

PHP lưu trữ kết quả của các chức năng này để cải thiện hiệu suất. Điều này đảm bảo rằng nhiều cuộc gọi để truy vấn cùng một tệp sẽ hoạt động nhanh hơn. Tuy nhiên, giá trị trả về của chúng sẽ giữ nguyên ngay cả khi tệp thay đổi trong quá trình thực thi tập lệnh

Kết quả chỉ được lưu vào bộ đệm cho các tệp đã tồn tại. Điều này có nghĩa là việc gọi một hàm


13 sẽ tiếp tục trả về

17 cho các tệp không tồn tại nhưng sẽ bắt đầu trả về

31 ngay khi tệp được tạo. Mặt khác, hàm sẽ tiếp tục trả về

31 cho một tệp đã tồn tại trong lần gọi đầu tiên, ngay cả sau khi tệp đã bị xóa

1

2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
0
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
2
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
4

6
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
5

8

0

3

2

4

5
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
48

7
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
50

9
2
1

6
2
2

8
2
4

3
2
6
2
8
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
60
2
9
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
62

6
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
64

8
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
66
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
67
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
68
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
69

00

3

02

03
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
00

Nếu bạn chạy đoạn mã trên cho một tệp thực sự tồn tại và sau đó xóa nó theo cách thủ công trong khi tập lệnh chờ, thì lệnh gọi


13 vẫn sẽ trả về

31. Tuy nhiên, bạn có thể nhận được kết quả chính xác bằng cách gọi

35 trước khi truy vấn lại sự tồn tại của tệp

đầu ra

1
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
04
2
____104
// URL of the remote file
$FileURL = 'https://www.website.com/repository/file.zip';

// Open file
$FileHandle = @fopen($FileURL, 'r');

// Check if file exists
if(!$FileHandle){
    echo 'ERROR: File not found';
}else{
    echo 'SUCCESS: File exists';
}
0

10

Một điều khác cần nhớ là lệnh gọi tới


36 sẽ tự động xóa bộ nhớ cache, do đó, bạn sẽ nhận được kết quả mới cho các lệnh gọi tới hàm như

13 sau này

Suy nghĩ cuối cùng

Chúng tôi bắt đầu hướng dẫn này bằng cách tìm hiểu tầm quan trọng của việc kiểm tra sự tồn tại của tệp trong PHP. Sau đó, chúng ta đã tìm hiểu về các chức năng khác nhau mà bạn có thể sử dụng để kiểm tra xem một tệp có tồn tại trong PHP hay không. Chúng tôi cũng đã tìm hiểu về những ưu điểm và nhược điểm mà một số chức năng này có thể có.

Như tôi đã đề cập ở phần cuối, PHP sẽ lưu trữ kết quả của một số lệnh gọi hàm này để cải thiện hiệu suất. Do đó, hãy đảm bảo rằng bạn xóa bộ nhớ cache trước khi thực hiện điều gì đó quan trọng với các tệp đó

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

Hàm file_exists() trong PHP, dùng để kiểm tra xem một tập tin hoặc thư mục có tồn tại trên máy chủ hay không. Nhưng hàm file_exists() sẽ không sử dụng được nếu bạn muốn kiểm tra sự tồn tại của tệp trên máy chủ từ xa. Hàm fopen() là giải pháp đơn giản nhất để kiểm tra xem URL của tệp có tồn tại trên máy chủ từ xa hay không bằng cách sử dụng PHP.

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

Hàm file_exists() kiểm tra xem tệp hoặc thư mục có tồn tại không.

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 để kiểm tra xem một thư mục có tồn tại trong PHP không?

Hàm PHP is_dir() . Ghi chú. Kết quả của chức năng này được lưu trữ. Sử dụng clearstatcache() để xóa cache.