Mengapa `file_exists` Tidak Berfungsi Untuk Imej Jauh dalam PHP?

DDD
Lepaskan: 2024-10-31 23:12:28
asal
840 orang telah melayarinya

Why Doesn't `file_exists` Work For Remote Images in PHP?

Semakan Kewujudan Fail untuk Imej Jauh dalam PHP

Adalah kerap diperlukan untuk mengesahkan kewujudan fail imej jauh dalam pembangunan web, selalunya menggunakan rangkaian penghantaran kandungan (CDN). Walau bagaimanapun, kaedah file_exists konvensional mungkin tidak berfungsi dengan sewajarnya apabila digunakan pada lokasi terpencil. Artikel ini menyiasat sebab di sebalik isu ini dan membentangkan penyelesaian.

Masalah:

Mengakses dari jauh fail imej menggunakan file_exists secara konsisten menghasilkan hasil yang positif, tidak kira sama ada imej itu wujud atau tidak. Kod berikut menunjukkan tingkah laku ini:

<code class="php">if (file_exists('http://www.example.com/images/$filename')) {
    echo "The file exists";
} else {
    echo "The file does not exist";
}</code>
Salin selepas log masuk

Penyelesaian:

Untuk membetulkan isu ini, sertakan nama fail dalam tanda petikan (sebagai rentetan):

<code class="php">if (file_exists('http://www.mydomain.com/images/' . $filename)) {
    …
}</code>
Salin selepas log masuk

Selain itu, pastikan pembolehubah $filename telah disahkan dengan betul.

Penjelasan Teknikal:

Fungsi file_exists beroperasi pada sistem fail setempat secara lalai . Apabila digunakan pada URL jauh, ia bergantung pada tetapan konfigurasi allow_url_fopen PHP, yang sering dilumpuhkan atas sebab keselamatan. Apabila tetapan ini dilumpuhkan, file_exists akan sentiasa mengembalikan palsu untuk URL jauh.

Melampirkan nama fail dalam tanda petikan memaksa PHP menganggapnya sebagai rentetan, menghalangnya daripada ditafsirkan sebagai URL jauh. Ini membolehkan fungsi memintas sekatan allow_url_fopen dan melakukan semakan dengan betul.

Sila ambil perhatian bahawa mendayakan allow_url_fopen mungkin memperkenalkan kelemahan keselamatan, jadi adalah penting untuk mempertimbangkan implikasi dengan teliti sebelum mengaktifkannya.

Atas ialah kandungan terperinci Mengapa `file_exists` Tidak Berfungsi Untuk Imej Jauh dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!