Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 [PHP] Как получить часть имени файла?  [new]
Ferrw
Guest
$f = '/home/site.com/www/uploads/tmp/8.8.8.8-' . time() . '-Tuesday.jpg';


Как можно получить в переменной только "Tuesday.jpg" из этого длинного пути?

Модератор: Название топика отредактировано
11 авг 17, 13:12    [20716567]     Ответить | Цитировать Сообщить модератору
 Re: Найти окончание файла  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
http://php.net/manual/ru/function.pathinfo.php
11 авг 17, 13:20    [20716617]     Ответить | Цитировать Сообщить модератору
 Re: Найти окончание файла  [new]
Ferrw
Guest
Не и basename тут тоже не подходит. Почитал форум, понял что нужно регулярным выражением действовать, Но не селен. Прошу помочь.
11 авг 17, 13:54    [20716804]     Ответить | Цитировать Сообщить модератору
 Re: Найти окончание файла  [new]
vkle
Member

Откуда: Самара
Сообщений: 13475
Можно и регулярками, если не лень их изучать. Если лень - можно и без регулярок обойтись. Например, типа так.

array_reverse(explode('-', $f))[0]
Если только имя файла не содержит дефисов.

Или так
explode('-', $f)[2]
Если путь не содержит дефисов.

Или эдак
explode('-', pathinfo($f)['basename'])[2]


Есть ещё всякие хитрые варианты. Например, вроде такого:

$t = time();
$f = '/home/site.com/www/uploads/tmp/8.8.8.8-' . $t . '-Tuesday.jpg';
var_dump(explode("-$t-", $f));


А вообще, не понятно, почему 'Tuesday.jpg' нельзя изначально запихнуть в переменную и использовать дважды.

PS: Тут всё сильно упрощено для понимания смысла.
PPS: Звиняйте, задача слишком проста, чтоб её регулярками решать. Интереснее поискать другие способы. :-)
11 авг 17, 22:03    [20717971]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
А ещё можно 45 минут на изучение регулярок потратить.
12 авг 17, 08:03    [20718306]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
Изопропил
Member

Откуда:
Сообщений: 30304
vkle
Можно и регулярками, если не лень их изучать.

как это не изучать??
12 авг 17, 09:42    [20718354]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
vkle
Member

Откуда: Самара
Сообщений: 13475
Изопропил
как это не изучать??
Ну как-то не изучают же. Одни пишут "написал регексп, работает не так", а другие просто "не знаю" без каких-либо попыток. Наверно, одним не лень прочитать пяток страничек по синтаксису и модификаторам, а другим лень. Это ж не двухтомник какой-то, для понимания основ достаточно несколько страниц прочесть. Не находите?
12 авг 17, 10:11    [20718366]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
Изопропил
Member

Откуда:
Сообщений: 30304
vkle,

я нахожу, что владение регекспами - навык необходимый любому программисту,
даже 1С-нику
12 авг 17, 12:52    [20718532]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
vkle
Member

Откуда: Самара
Сообщений: 13475
Изопропил,

Согласен. Только некоторые годами без них обходятся - и ничего
12 авг 17, 14:02    [20718592]     Ответить | Цитировать Сообщить модератору
 Re: [PHP] Как получить часть имени файла?  [new]
Програмёр
Member

Откуда: Москва
Сообщений: 2956
vkle
Изопропил,

Согласен. Только некоторые годами без них обходятся - и ничего


Некоторые web-программисты годами обходятся без знания php и js, и при этом умудряются на них что-то ваять. А работают по принципу "о, кажется я нашёл код, который это делает", от чего качество работы в итоге такое, что на это страшно даже смотреть, не то что пользоваться. Всё в дырках, работает кое-как, да и сам код, разумеется, в разных стилях написан, и взят из обучающих статей для новичков, что поддерживаемости ему не добавляет.

Я вот как-раз на днях одной компании программера нового искал на 90к, так приходили люди с опытом более года работы и при этом не могли ответить на самые элементарные вопросы типа какие есть типы данных в пыхе и что делают instanceof и list, а также чем отличается интерфейс от класса. Я эти вопросы просто для галочки добавил, но после пятого собеседования понял, что именно с них имеет смысл начинать собеседование... и чаще всего на них его и следует заканчивать Ну если list ещё кто-то и может не знать, то уж instanceof, interface и class должен знать, заявляя знание ООП.
13 авг 17, 17:59    [20720052]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить