Posts tagged dirname
Включване/инклуудване на файлове в php
0Както знаете в php можете да включвате други файлове. Например във файла index.php може да инклуднете news.php или пък games.php въз основа на някаква зависимост, ако искате. Да добавите файлове към php файл можете да направите с готовите функции include и require (include_once и require_once). Разликата между include и require е, че при require ако не бъде добавен файла то ще спре и останалия код, а при include ще се появи просто грешка. include_once и reuiqre_once както разбирате по самото име го включва само веднъж. Т.е. ако вече някъде по-нагоре в кода е бил включен няма да го включи отново, а при include и require ще го включи отново и е възможно да има леко забавяне. Лично ви препоръчвам да не използвате include_once и require_once, тъй като има забавяне – php се забавя за прегледа дали вече е бил включен този файл. Затова основните файлове си ги добавяйте в началото на кода, а второстепенни като header.php footer.php и файлове, в които показват различни страници от сайта ви на необходимото място.
Та в тази публикация ми се искаше да ви дам просто една насока – използвайте пълния път до файла, а не примерно domain.com/files/includes/header.php или пък files/include/header.php. По този начин php трябва да се ориентира къде е, какво има в предходна директория, следваща и като цяло има малко забавяне. Това забавяне няма да се усети при примерно 100 посещения на ден, но при 100 посещения в минута вече може да усети. Та как да вземем пълния път до файл?
Ето как:
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
__FILE__ ще върне пълния път до файла + името на файла. Функцията dirname() връща само пътя от целия път + файла. Примерно, ако __FILE__ ни връща /root/martox/project/config.php то с dirname ще ви върни само /root/martox/project без наклонена черта накрая както виждате! След това викам така да се каже вградената константа в php DIRECTORY_SEPARATOR (винаги с главни букви), която ще върне в зависимост под какво е сървъра \ за Windows или / за линукс, мак…
После при добавянето на файлове пишете
include $path.’my_file.php’; и сте готови
можете да напишете и include($path.’my_file.php’); Не съм забелязал разлика между без скоби и със скоби. Скоро предполагам ще почна и уроци за ООП. Поздрави!