Hướng dẫn php check if file exists url - php kiểm tra xem tệp có tồn tại url không

61

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi cần kiểm tra xem một tệp cụ thể có tồn tại trên một máy chủ từ xa không. Sử dụng is_file[]file_exists[] không hoạt động. Bất kỳ ý tưởng làm thế nào để làm điều này một cách nhanh chóng và dễ dàng?

Ruben

4.9332 Huy hiệu vàng24 Huy hiệu bạc45 Huy hiệu Đồng2 gold badges24 silver badges45 bronze badges

Đã hỏi ngày 7 tháng 10 năm 2011 lúc 8:32Oct 7, 2011 at 8:32

1

Bạn không cần Curl cho điều đó ... quá nhiều chi phí vì chỉ muốn kiểm tra xem một tệp có tồn tại hay không ...

Sử dụng get_header của PHP.

$headers=get_headers[$url];

Sau đó kiểm tra xem $ results [0] có chứa 200 OK không [có nghĩa là tệp có ở đó không]

Một chức năng để kiểm tra xem một URL có hoạt động có thể là thế này không:

function UR_exists[$url]{
   $headers=get_headers[$url];
   return stripos[$headers[0],"200 OK"]?true:false;
}

/* You can test a URL like this [sample] */
if[UR_exists["//www.amazingjokes.com/"]]
   echo "This page exists";
else
   echo "This page does not exist";

Đã trả lời ngày 18 tháng 4 năm 2015 lúc 8:36Apr 18, 2015 at 8:36

Patrickpatrickpatrick

11.3k7 Huy hiệu vàng66 Huy hiệu bạc79 Huy hiệu đồng7 gold badges66 silver badges79 bronze badges

5

Bạn phải sử dụng Curl

function does_url_exists[$url] {
    $ch = curl_init[$url];
    curl_setopt[$ch, CURLOPT_NOBODY, true];
    curl_exec[$ch];
    $code = curl_getinfo[$ch, CURLINFO_HTTP_CODE];

    if [$code == 200] {
        $status = true;
    } else {
        $status = false;
    }
    curl_close[$ch];
    return $status;
}

Dharman ♦

28.2K21 Huy hiệu vàng75 Huy hiệu bạc128 Huy hiệu đồng21 gold badges75 silver badges128 bronze badges

Đã trả lời ngày 7 tháng 10 năm 2011 lúc 8:41Oct 7, 2011 at 8:41

AmilaamilaAmila

1.4231 Huy hiệu vàng11 Huy hiệu bạc17 Huy hiệu đồng1 gold badge11 silver badges17 bronze badges

4

Xin chào Theo thử nghiệm của chúng tôi giữa 2 máy chủ khác nhau, kết quả như sau:

Sử dụng Curl để kiểm tra các tệp 10 .png [mỗi tệp khoảng 5 MB] trung bình là 5,7 giây. Sử dụng kiểm tra tiêu đề cho điều tương tự mất trung bình 7,8 giây!

Vì vậy, trong bài kiểm tra của chúng tôi đã nhanh hơn nhiều nếu bạn phải kiểm tra các tệp lớn hơn!

Hàm Curl của chúng tôi là:

function remote_file_exists[$url]{
    $ch = curl_init[$url];
    curl_setopt[$ch, CURLOPT_NOBODY, true];
    curl_exec[$ch];
    $httpCode = curl_getinfo[$ch, CURLINFO_HTTP_CODE];
    curl_close[$ch];
    if[ $httpCode == 200 ]{return true;}
    return false;
}

Đây là mẫu kiểm tra tiêu đề của chúng tôi:

function UR_exists[$url]{
   $headers=get_headers[$url];
   return stripos[$headers[0],"200 OK"]?true:false;
}

Đã trả lời ngày 29 tháng 8 năm 2016 lúc 14:31Aug 29, 2016 at 14:31

0

Bạn có thể sử dụng hàm file_get_contents [];

if[file_get_contents['//example.com/example.txt']] {
    //File exists
}

Đã trả lời ngày 17 tháng 10 năm 2018 lúc 13:38Oct 17, 2018 at 13:38

TomtomTom

1221 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

3

Thực hiện yêu cầu với Curl và xem nếu nó trả về mã trạng thái 404. Thực hiện yêu cầu bằng phương pháp yêu cầu đầu để nó chỉ trả về các tiêu đề mà không có cơ thể.

Đã trả lời ngày 7 tháng 10 năm 2011 lúc 8:34Oct 7, 2011 at 8:34

Fivingigitfivingigitfivedigit

18.1k6 Huy hiệu vàng53 Huy hiệu bạc58 Huy hiệu Đồng6 gold badges53 silver badges58 bronze badges

$file = '//picsum.photos/200/300';
$file_headers = @get_headers[$file];
if[$file_headers[0] == 'HTTP/1.1 404 Not Found'] {
    $exists = false;
}
else {
    $exists = true;
} 

Đã trả lời ngày 14 tháng 5 năm 2021 lúc 11:25May 14, 2021 at 11:25

Optimaz IdOptimaz IDOptimaz ID

7778 Huy hiệu bạc11 Huy hiệu đồng8 silver badges11 bronze badges

    $headers = get_headers[[isset[$_SERVER['HTTPS']] && $_SERVER['HTTPS'] === 'on' ? "https" : "http"] . "://" . $_SERVER[HTTP_HOST] . '/uploads/' . $MAIN['id'] . '.pdf'];
    $fileExist = [stripos[$headers[0], "200 OK"] ? true : false];
    if [$fileExist] {
    ?>
    

Bài Viết Liên Quan

Chủ Đề