perl: Получить путь из полного имени файла
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
- Контактная информация:
perl: Получить путь из полного имени файла
Как проще получить путь имея полное имя файла? Т.е. есть /usr/home/urgor/site/images/icons/disk.png, а мне надо получить /usr/home/urgor/site/images/icons/
Власть в руках у чужаков, и ты им платишь дань...
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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: Получить путь из полного имени файла
Код: Выделить всё
man dirname
Убей их всех! Бог потом рассортирует...
- Alex Keda
- стреляли...
- Сообщения: 35472
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: perl: Получить путь из полного имени файла
или на перле - искать последний слэш и от него плясать...
несложно, на php строки две три было бы...
несложно, на php строки две три было бы...
Убей их всех! Бог потом рассортирует...
- Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
- Контактная информация:
Re: perl: Получить путь из полного имени файла
Странно, но это мне и в голову не приходило...lissyara писал(а):или на перле - искать последний слэш и от него плясать...
Таки, однаlissyara писал(а):несложно, на php строки две три было бы...

Код: Выделить всё
my $dirname = substr($filename, 0, rindex($filename, '/'));
Власть в руках у чужаков, и ты им платишь дань...
- Alex Keda
- стреляли...
- Сообщения: 35472
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: perl: Получить путь из полного имени файла
да и я водну бы при желании ужал.
тока я последнее время стараюсь понятно писать
тока я последнее время стараюсь понятно писать

Убей их всех! Бог потом рассортирует...
- Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
- Контактная информация:
Re: perl: Получить путь из полного имени файла
Это как? Добавить еще пару страниц комментариев?lissyara писал(а):тока я последнее время стараюсь понятно писать

Власть в руках у чужаков, и ты им платишь дань...
- Alex Keda
- стреляли...
- Сообщения: 35472
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: perl: Получить путь из полного имени файла

Код: Выделить всё
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: Получить путь из полного имени файла
Код: Выделить всё
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: Получить путь из полного имени файла
Ну тут действительно очень сложный случай, я пока только половину комментариев осилил... 

Власть в руках у чужаков, и ты им платишь дань...
-
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2007-08-13 9:56:13
Re: perl: Получить путь из полного имени файла
Код: Выделить всё
$a = '/usr/home/urgor/site/images/icons/disk.png';
$a =~ /^(\/.+\/)/;
print $1
Последний раз редактировалось Alex Keda 2007-10-18 11:52:28, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...