голосование
PHP
Javascript
BASH
HTML
Firebird
Программы
Хостинг
Майнинг
Ресурсы
GIT
SEO
Oracle
Python
Железо
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как понять папку где выполняется скрипт PHP

Часто нужно воспользоваться частью url-адреса. Допустим в вас такой url: http://trainingweb.ru/img/php/img1.jpg. Как найти папку в которой находится картинка PHP. Предлагаю вам посмотреть на функцию getDir().


function getDir($str)
{	 	
   $num = strrpos($str, '/');
   $num += 1;
   $res = substr($str, $num);
   return $res;
}
echo getDir('http://trainingweb.ru/img/php/img1.jpg');

Функция strrpos() возвращает позицию последнего вхождения подстроки в строке. При помощи strrpos получаем позицию в строке в виде числа. Функция substr() возвращает подстроку. Благодаря входному параметру $num срезается часть строки после заданной позиции ($num). Я добавил 1 к $num, так как символ слеша тоже занимает место.

Хочу вам показать еще один способ. Существует функция pathinfo. Она возвращает информацию о пути к файлу. Вы можете получить как название файла, так и его расширение. Вам нужно выбрать соответствующую константу и передать её в качестве входного параметра.


define('PATH', "dir1/dir2/dir3/dir4/file.php");
$url = 'dir1/dir2/dir3/dir4/file.php';

echo PATH." - путь";
echo basename($url)."- название файла + расширение";
echo pathinfo(PATH, PATHINFO_DIRNAME)." - путь + директория";
echo pathinfo(PATH, PATHINFO_BASENAME)." - название файла + расширение";
echo pathinfo(PATH, PATHINFO_EXTENSION)." - расширение файла";
echo pathinfo(PATH, PATHINFO_FILENAME)." - название файла";

/*
Вывод:
dir1/dir2/dir3/dir4/file.php - путь
file.php- название файла + расширение
dir1/dir2/dir3/dir4 - путь + директория
file.php - название файла + расширение
php - расширение файла
file - название файла
*/

Очень часто нужно автоматически определить местоположение файла. Ошибка в пути приводит к остановке скрипта. Для этого существуют специальные серверные переменные. Например $_SERVER['PWD'] - показывает текущее расположение файла, начиная от самого начала. Используют эту переменную в серверном программировании. Её аналог константа __DIR__. Переменная $_SERVER['PWD'] не всегда работает, поэтому используйте константу __DIR__. Читайте про массив $_SERVER в статье массив $_SERVER в PHP. Допустим, у вас есть приложение app. Для того чтобы запустить скрипт при помощи CRON необходимо прописывать абсолютный путь до скрипта. Константа __DIR__ прекрасно справляется с определением пути. Если не пользоваться константами и серверной переменными, то вы можете попасть в неприятную ситуацию. Если путь был изменён (переименовали папку), то возникнет ошибка и вам придётся изменять пути во всех скриптах.


include_once('/folder1/folder2/folder3/app/file.php');
include_once('/folder1/folder2/folder3/app/parts/file.php');
#или с константой __DIR__
include_once(__DIR__.'/app/file.php');
include_once(__DIR__.'/app/parts/file2.php');
просмотры: 803, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-12-26 13:15:13
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP