Страница 1 из 1

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

Добавлено: 2007-10-17 13:41:49
Urgor
Как проще получить путь имея полное имя файла? Т.е. есть /usr/home/urgor/site/images/icons/disk.png, а мне надо получить /usr/home/urgor/site/images/icons/

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

Добавлено: 2007-10-17 13:48:06
Alex Keda

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

man dirname

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

Добавлено: 2007-10-17 13:48:49
Alex Keda
или на перле - искать последний слэш и от него плясать...
несложно, на php строки две три было бы...

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

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

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

my $dirname = substr($filename, 0, rindex($filename, '/'));

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

Добавлено: 2007-10-17 14:04:46
Alex Keda
да и я водну бы при желании ужал.
тока я последнее время стараюсь понятно писать :)

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

Добавлено: 2007-10-17 14:09:18
Urgor
lissyara писал(а):тока я последнее время стараюсь понятно писать :)
Это как? Добавить еще пару страниц комментариев? :lol:

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

Добавлено: 2007-10-17 14:16:50
Alex Keda
:) не поленился, нашёл похожее.

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

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 - с полным путём до корня сайта


?>

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

Добавлено: 2007-10-17 14:18:38
Alex Keda

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

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");
оттуда же :))
==========
у меня много забавных комментов есть :)

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

Добавлено: 2007-10-17 14:23:41
Urgor
Ну тут действительно очень сложный случай, я пока только половину комментариев осилил... :(

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

Добавлено: 2007-10-18 10:59:34
al0ns0

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

$a = '/usr/home/urgor/site/images/icons/disk.png';
$a =~ /^(\/.+\/)/;
print $1