"Kaedah untuk menyelesaikan ralat maut: require(): Pembukaan yang gagal diperlukan 'data/tdk.php' (include_path='.;C:phppear')"
Baru-baru ini, beberapa pembangun PHP telah menghadapi Ini adalah masalah yang menyusahkan masalah: apabila mereka menggunakan fungsi require() dalam kod PHP untuk memuatkan fail yang diperlukan, ralat berikut akan muncul:
fatal error: require(): Failed opening required 'data/tdk.php' (include_path='.;C:phppear')
Ralat ini biasanya disebabkan oleh nilai include_path. Fungsi include_path adalah untuk menentukan laluan di mana program PHP mencari fail yang diperlukan.
Terdapat beberapa cara untuk menyelesaikan masalah ini:
Penyelesaian paling mudah ialah menggunakan laluan penuh untuk memuatkan fail yang diperlukan. Sebagai contoh, data/tdk.php dalam ralat di atas, jika kita tahu direktori mana ia berada dalam pelayan, kita boleh menggunakan laluan penuh untuk menggantikannya. Contohnya:
require('/var/www/html/project/data/tdk.php');
Dengan cara ini, program PHP boleh mencari terus fail yang diperlukan dan memuatkannya dengan betul.
Tetapi satu kelemahan kaedah ini ialah apabila kita perlu menguji atau menjalankan program pada pelayan yang berbeza, kerana laluan yang berbeza, kita perlu mengubah suai laluan sepanjang masa, yang sangat menyusahkan.
Kaedah lain ialah mengubah suai nilai include_path dalam fail konfigurasi PHP php.ini. Buka fail php.ini, cari item include_path di dalamnya dan pisahkan berbilang laluan dengan koma bertitik, contohnya:
include_path = ".:/usr/lib/php:/usr/local/lib/php:/path/to/your/files"
Dengan cara ini, program PHP akan mencari fail yang diperlukan dalam laluan ini secara bergilir-gilir. Jika kami berada dalam direktori /data, kami boleh menambahkannya ke include_path:
include_path = ".:/usr/lib/php:/usr/local/lib/php:/path/to/your/files:/data"
Selepas mengubah suai fail php.ini, mulakan semula perkhidmatan PHP dan fail yang diperlukan boleh dimuatkan seperti biasa.
PHP menyediakan pemalar __DIR__, yang mewakili direktori di mana skrip semasa berada. (Gunakan diname(__FILE__) sebelum PHP5.3.0) Kita boleh menggunakannya untuk menyelesaikan masalah di atas, iaitu, gunakan laluan relatif dalam kod. Contohnya:
require(__DIR__ . '/data/tdk.php');
Dengan cara ini, tidak kira laluan mana kami menyalin keseluruhan program, program PHP boleh menggunakan fail yang diperlukan dengan betul.
Ringkasan:
Dari tiga kaedah di atas, anda boleh memilih satu untuk menyelesaikan masalah ini mengikut situasi sebenar. Jika ia adalah projek pembangunan peribadi, anda boleh menggunakan kaedah ketiga. Jika anda membangun secara kolaboratif dengan berbilang orang, atau menjalankan program pada pelayan yang berbeza, adalah disyorkan untuk menggunakan kaedah kedua. Jika anda tidak mahu mengubah suai fail konfigurasi PHP, tetapi anda tidak mahu menggunakan laluan penuh untuk memuatkan fail setiap kali, anda boleh menggunakan kaedah pertama.
Tidak kira kaedah mana yang digunakan, anda harus memberi perhatian kepada kes laluan fail dan ketepatan nama fail. Ini boleh menyebabkan ralat ini. Dengan memilih kaedah yang betul, anda boleh memuatkan fail yang diperlukan dengan betul dan membenarkan program berjalan dengan betul.
Atas ialah kandungan terperinci Kaedah untuk menyelesaikan ralat maut: require(): Gagal membuka diperlukan 'data/tdk.php' (include_path='.;C:\php\pear'). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!