Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Находится ли скрипт в директории

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: папка в которой лежит скрипт
vk
Отправлено: 06 Мая, 2007 - 11:37:01
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2007  
Откуда: Москва


Помог: 0 раз(а)




Сорри за ламерский вопрос, впал в ступор и не могу сдвинуться с места.
Активно использовал в шаблонах и для подсветки меню конструкцию SSI следующего вида:
<!--#if expr="$DOCUMENT_URI=/^/папка_1/" -->кусок_кода_1<!--#else -->кусок_кода_2<!--#endif -->
В PHP работает конструкция вида
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ($_SERVER['REQUEST_URI'] == '/папка_1/test.php') {
  3.     echo "кусок_кода_1";
  4. } else {
  5.     echo "ошибка";
  6. }
  7. ?>


Как корректно сделать, чтобы при сравнении 'REQUEST_URI' анализировалась директория, а не имя файла.
 
 Top
valenok Модератор
Отправлено: 06 Мая, 2007 - 12:17:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $uri = $_SERVER["SCRIPT_NAME"];  // $uri = /folder/script.php
  4. $folder = substr( $uri , 0 , strpos($uri, '/' , 1) )."/";
  5. echo $folder;   // Output = /folder/
  6.  


А причём тут SSI? Трабл с elseIf ?
назвать то нужно: Как получить директорию в которой лежит скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $uri = $_SERVER["SCRIPT_NAME"];  // $uri = /folder/subfolder/subsub/script.php
  4. $folder = substr( $uri , 0 , strpos($uri, '/' , 1) )."/";
  5. echo $folder;   // Output = /folder/
  6.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $uri = $_SERVER["SCRIPT_NAME"];  // $uri = /folder/subfolder/subsub/script.php
  4. $folder = substr( $uri , 0 , strrpos($uri, '/' , 1) )."/";
  5. echo $folder;   // Output = /folder/subfolder/subsub/
  6.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $uri = $_SERVER["SCRIPT_NAME"];  //  $uri = /folder/subfolder/subsub/script.php
  4. $folders = explode( "/" , $uri);
  5. $folder = "/".$folders[(count($folders)-2)]."/";
  6. echo $folder;   // Output = /subsub/
  7.  



Вместо: $_SERVER["SCRIPT_NAME"]
можно использовать: $_SERVER['REQUEST_URI']
Результат исполнения в обоих случаях тот же.


-----
Truly yours, Sasha.
 
My status
 Top
vk
Отправлено: 06 Мая, 2007 - 12:42:48
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2007  
Откуда: Москва


Помог: 0 раз(а)




Цитата:
[quote=valenok]
А причём тут SSI? Трабл с elseIf ?
назвать то нужно: Как получить директорию в которой лежит скрипт

Мне показалось, я спросил корректно. В SSI есть очень короткая и удобная конструкция, которую я привел. Мне нужно ее заменить на выражение в PHP.
 
 Top
valenok Модератор
Отправлено: 06 Мая, 2007 - 12:46:03
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




В названии темы надо ведь ставить конкретно задачу.
Вряд ли кому ещё понадобится узнать в какой папке лежит скрипт -
пойдут искать по ключевым словам SSI / elseIf

А что значит /^/папка_1/ тоже не думаю что многие знают.
Проверяет находится ли в начале строки строка "папка_1" ?

Можно регулярными выражениями проверять:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. if(preg_match("/^\\/folder_1\\//", $_SERVER["SCRIPT_NAME"])) {
  5.         //code 1
  6. }else{
  7.         // else
  8. }
  9.  



-----
Truly yours, Sasha.
 
My status
 Top
vk
Отправлено: 06 Мая, 2007 - 12:50:16
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2007  
Откуда: Москва


Помог: 0 раз(а)




valenok пишет:
В названии темы надо ведь ставить конкретно задачу.
Вряд ли кому ещё понадобится узнать в какой папке лежит скрипт - пойдут искать по ключевым словам SSI / elseIf

ОК, сорри. жалко, тему не исправить самостоятельно.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB