Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить путь папки-источника
 
 автор: Zauber   (20.06.2006 в 09:55)   письмо автору
 
 

Здравствуйте форумчане!
Пишу скрипт для WAP наподобие эксплорера. Не могу сделать выход "Наверх", а точнее получить адрес папки-источника.
В переменной $url содержится текущий адрес: papka1/papka2/papka3/
Как можно получить адрес вышележащей папки (в данном случае papka1/papka2/)?

   
 
 автор: KPETuH   (20.06.2006 в 10:54)   письмо автору
 
   для: Zauber   (20.06.2006 в 09:55)
 

сделал так возможно есть и более простые пути


      $d=substr(strrchr($act,"/"),1);
      $dir=str_replace("/".$d,"",$act);


где $act - papka1/papka2/papka3, а $dir- papka1/papka2, только если ты в конце пути ставишь слеши ничего не получится :).

   
 
 автор: mihdan   (20.06.2006 в 12:35)   письмо автору
 
   для: Zauber   (20.06.2006 в 09:55)
 

Попробуй сделать вначале так

<?
// Адрес текуще папки, чтобы не писать вручную
$nowDir dirname(__FILE__);
// Вырежем последнюю папку
$tmp substr(strrchr($nowDir"/"), 1);
// Меняем последнюю папку на "пусто"
$resDir=str_replace("/".$tmp""$nowDir);
?>

   
 
 автор: NFR   (20.06.2006 в 12:43)   письмо автору
 
   для: Zauber   (20.06.2006 в 09:55)
 

а "../" на вышележащую деректорию разве не переносит?..

   
 
 автор: KPETuH   (20.06.2006 в 13:50)   письмо автору
 
   для: NFR   (20.06.2006 в 12:43)
 

насколько я знаю ../ это корневой каталог

   
 
 автор: kasmanaft   (20.06.2006 в 14:19)   письмо автору
 
   для: KPETuH   (20.06.2006 в 13:50)
 

корневой каталог "/" , вроде бы :)

   
 
 автор: NFR   (20.06.2006 в 14:25)   письмо автору
 
   для: KPETuH   (20.06.2006 в 13:50)
 

информатику в школе учил/нет?..
или это я её забыл?..

   
 
 автор: Zauber   (20.06.2006 в 14:58)   письмо автору
 
   для: NFR   (20.06.2006 в 12:43)
 

Переносит. Но позволить юзеру удалённо открывать любой каталог я не могу. Потому в начале скрипта режу попытки таким образом выйти на несколько уровней выше.
Способ от KPETuH вполне рабочий :) Пока буду юзать его, выявляя недостатки.

   
 
 автор: kasmanaft   (20.06.2006 в 14:29)   письмо автору
 
   для: Zauber   (20.06.2006 в 09:55)
 

и еще как вариант можно вот так попробовать:

$dir1 = dirname(__FILE__);
chdir ('../');
$dir2 = getcwd();
chdir ($dir1);

если "папки" на самом деле папки... а не результат мод реврайт

   
 
 автор: Zauber   (20.06.2006 в 15:48)   письмо автору
 
   для: kasmanaft   (20.06.2006 в 14:29)
 

Способ от mihdan заработал сразу :)
Только один недостаток неверно обрабатывает строки вида: /111/11/111111 (возвращает 1, вместо /111/11).

   
 
 автор: Zauber   (20.06.2006 в 16:31)   письмо автору
 
   для: Zauber   (20.06.2006 в 15:48)
 

Всем спасибо!
Проблему разрулил так:
В $url адрес папки
$tmp = substr(strrchr($url, '/'), 1);
$length = strlen($tmp);
$updir = substr($url,0,-$length-1);

В $updir адрес папки на 1 уровень выше.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования