perl: Получить путь из полного имени файла

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Urgor
лейтенант
Сообщения: 677
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

perl: Получить путь из полного имени файла

Непрочитанное сообщение Urgor » 2007-10-17 13:41:49

Как проще получить путь имея полное имя файла? Т.е. есть /usr/home/urgor/site/images/icons/disk.png, а мне надо получить /usr/home/urgor/site/images/icons/
Власть в руках у чужаков, и ты им платишь дань...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35472
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Alex Keda » 2007-10-17 13:48:06

Код: Выделить всё

man dirname
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35472
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Alex Keda » 2007-10-17 13:48:49

или на перле - искать последний слэш и от него плясать...
несложно, на php строки две три было бы...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 677
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Urgor » 2007-10-17 14:02:30

lissyara писал(а):или на перле - искать последний слэш и от него плясать...
Странно, но это мне и в голову не приходило...
lissyara писал(а):несложно, на php строки две три было бы...
Таки, одна :)

Код: Выделить всё

my $dirname = substr($filename, 0, rindex($filename, '/'));
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35472
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Alex Keda » 2007-10-17 14:04:46

да и я водну бы при желании ужал.
тока я последнее время стараюсь понятно писать :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 677
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Urgor » 2007-10-17 14:09:18

lissyara писал(а):тока я последнее время стараюсь понятно писать :)
Это как? Добавить еще пару страниц комментариев? :lol:
Власть в руках у чужаков, и ты им платишь дань...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35472
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Alex Keda » 2007-10-17 14:16:50

:) не поленился, нашёл похожее.

Код: Выделить всё

mail# more before_sql_functions.php | iconv -f cp1251 -t koi8-r
<?php

// функции используемые до соединения с БД
// начат 2007-10-01 в 22:06

// проблема про которую сообразил до момента первого запуска
// скрипта. ввиду использования перезаписи адресов, url на
// строне браузера пользователя будет выглядеть не так, как на стороне сервера.
// надо определить реальный путь, и достать путь на стороне сервера...

// переменная апача с реальным путём до реального скрипта.
// SCRIPT_FILENAME      /usr/local/www/data/my_sites/www.newautomobile.ru/2007-10-01/phpinfo.php (_SERVER["PATH_TRANSLATED"])
// все скрипты будут лежать в корне сайта, поэтому, задача несложная - из URL вычленить путь до
// директории где реально лежат файлы
// DOCUMENT_ROOT        /usr/local/www/data
// переменная с путём до корневой директории сервера.
// нужный кусок пути будет для этих двух переменных будет такой: /my_sites/www.newautomobile.ru/2007-10-01/

// вычисляем кусок пути, который видит юзер - /my_sites/www.newautomobile.ru/2007-10-01/phpinfo.php
$user_side_part_url = str_replace($_SERVER["DOCUMENT_ROOT"], "", $_SERVER["PATH_TRANSLATED"]);
//echo $user_side_part_url;

// ищем позицию последнего слэша
$last_slash = strrpos($user_side_part_url, "/");
//echo "last slash = " . $last_slash;

// высчитываем собственно URL без имени файла, то, ради чего и затевалось
$request_dir = substr ($user_side_part_url, 0, $last_slash);
//echo $request_dir;

// удаляем использованные промежуточные переменные
unset($user_side_part_url);
unset($last_slash);

// на выходе имеем 1 переемнную - $request_dir - с полным путём до корня сайта


?>
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35472
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Alex Keda » 2007-10-17 14:18:38

Код: Выделить всё

mail# more ../index.php | iconv -f cp1251 -t koi8-r | more
<?php

// индексный файл.
// в нём будет скелет логики сайта
// начат 2007-10-01 в 20:43








// поехали. то, что выше этого - временное явление, на период настройки и отладки.

// предварительный шаблон реального URL
// /catalog/bmw/310/ == index.php?catalog=1&marka=bmw&model=310
// пиздец. либо думать и строить соответствие числовых полей названиям,
// либо искать прямо по названиям.
// второй вариант намнго проще сделать, но в плане нагрузки на сервер - тяжелее..
// наверно пока будет второй :) цена за гигагерц проца всё ниже и ниже...
// блин, где то время, когда мой сайт со свистом ворочался на 166 первом пне...

// функции используемые до подключения к БД - в основном, на случай если это самое
// подключенние не удасться, ну и вообще - мало ли...
require_once("includes/before_sql_functions.php");
оттуда же :))
==========
у меня много забавных комментов есть :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Urgor
лейтенант
Сообщения: 677
Зарегистрирован: 2006-03-14 16:30:18
Откуда: Гилея (СПб)
Контактная информация:

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение Urgor » 2007-10-17 14:23:41

Ну тут действительно очень сложный случай, я пока только половину комментариев осилил... :(
Власть в руках у чужаков, и ты им платишь дань...

al0ns0
проходил мимо
Сообщения: 3
Зарегистрирован: 2007-08-13 9:56:13

Re: perl: Получить путь из полного имени файла

Непрочитанное сообщение al0ns0 » 2007-10-18 10:59:34

Код: Выделить всё

$a = '/usr/home/urgor/site/images/icons/disk.png';
$a =~ /^(\/.+\/)/;
print $1
Последний раз редактировалось Alex Keda 2007-10-18 11:52:28, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...