Rumah > pembangunan bahagian belakang > tutorial php > Mengapa PHP Saya Disertakan Gagal Walaupun Dengan Laluan Sertakan Yang Betul?

Mengapa PHP Saya Disertakan Gagal Walaupun Dengan Laluan Sertakan Yang Betul?

Mary-Kate Olsen
Lepaskan: 2024-11-28 06:55:10
asal
756 orang telah melayarinya

Why Does My PHP Include Fail Even With a Correct Include Path?

PHP Sertakan Kekeliruan Laluan Relatif

Apabila cuba memasukkan fail PHP dari laluan relatif, pembangun mungkin menghadapi ralat yang tidak dijangka walaupun menetapkan termasuk laluan dengan betul. Artikel ini menyelidiki kemungkinan punca ralat sedemikian, menyediakan penyelesaian menggunakan DIR dan pemalar nama dirna.

Isu:

Seseorang pengguna struktur kod termasuk dua fail, /root/connect.php dan /root/update/test.php. connect.php cuba memasukkan "../config.php", dengan mengandaikan bahawa config.php terletak dalam /root. Walau bagaimanapun, test.php menyertakan connect.php dan menetapkan laluan sertakan kepada ".:/root", yang sepatutnya secara teorinya membenarkan kemasukan ../config.php daripada /root.

The Ralat:

Walaupun laluan termasuk yang betul ditetapkan, kod gagal untuk mencari config.php dan melemparkan amaran PHP yang menunjukkan bahawa fail itu tidak wujud. Ini membingungkan kerana laluan relatif kepada config.php (/root/config.php) berada dalam laluan include yang ditetapkan.

Penyelesaian:

Kunci untuk menyelesaikan isu ini terletak pada memahami tingkah laku laluan relatif dalam PHP. Walaupun sertakan menyokong laluan relatif, titik permulaan sentiasa direktori semasa fail yang melaksanakan pernyataan sertakan. Dalam kes ini, connect.php dilaksanakan dalam /root/connect.php, jadi apabila ia cuba memasukkan "../config.php", ia kelihatan dalam direktori /root/connect.php/, yang tidak mengandungi konfigurasi .php.

Untuk mengatasi had ini, pemalar DIR boleh digunakan untuk merujuk direktori fail semasa. Menggabungkan nama fail kepada DIR menyediakan laluan mutlak ke fail yang dikehendaki.

Kod dengan Penyelesaian:

connect.php:

include(dirname(__DIR__).'/config.php');
Salin selepas log masuk

Kod ini akan menggunakan laluan mutlak dirname(__DIR__).'/config.php' untuk memasukkan config.php, memastikan ia ditemui tanpa mengira direktori semasa.

Test.php:

set_include_path(".:/root");
include "connect.php";
Salin selepas log masuk

Dengan pengubahsuaian ini, test.php akan berjaya memasukkan connect.php, yang seterusnya akan menyertakan config.php daripadanya yang betul lokasi.

Kesimpulan:

Memahami tingkah laku laluan relatif dan menggunakan DIR dan pemalar dirname membolehkan pembangun memasukkan fail dari laluan relatif dengan tepat , walaupun semasa bekerja dengan struktur direktori yang kompleks.

Atas ialah kandungan terperinci Mengapa PHP Saya Disertakan Gagal Walaupun Dengan Laluan Sertakan Yang Betul?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan