@DocTypeMaster

Как грамотно обрезать строку в php?

Делаю небольшую библиотеку, и застопорился вот на таком простом деле, есть строка:

K:/server/OSPanel/domains/kkk12.com/Kafedra/пример_книги_Посібник_експлуатації_1.1.pdf.

Это путь к файлу, я уже научился обрезать ту часть которая мне не нужна
( K:/server/OSPanel/domains/kkk12.com/ )
Пользуюсь вот такоей функцией.
mb_strimwidth($filepath, 35, 45)

Но вот какая проблема, мне нужно обрезать еще и расширение типа .pdf и поменять его на .PNG но так как длина имени файла всегда будет разной то четко ко количеству символом резать нельзя, как это реализовать ?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
OxCom
@OxCom
PHP Manual pathinfo(); - то, что вам нужно.

setlocale(LC_ALL,'en_US.UTF-8');
$s     = 'K:/server/OSPanel/domains/kkk12.com/Kafedra/пример_книги_Посібник_експлуатації_1.1.pdf';
$parts = [
    \str_replace('K:/server/OSPanel/domains/kkk12.com', '.', \pathinfo($s, PATHINFO_DIRNAME)),
    \pathinfo($s, PATHINFO_FILENAME) . '.png', // fix by @zkelo
];

var_dump(\implode(DIRECTORY_SEPARATOR, $parts));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
$a = parse_url('K:/server/OSPanel/domains/kkk12.com/Kafedra/пример_книги_Посібник_експлуатації_1.1.pdf', PHP_URL_PATH);
$b = explode('/', $a);
var_dump($b);

Вывод:
array(7) {
  [0]=>
  string(0) ""
  [1]=>
  string(6) "server"
  [2]=>
  string(7) "OSPanel"
  [3]=>
  string(7) "domains"
  [4]=>
  string(9) "kkk12.com"
  [5]=>
  string(7) "Kafedra"
  [6]=>
  string(73) "пример_книги_Посібник_експлуатації_1.1.pdf"
}


Меняешь формат:
$c = explode('.', $b[6])[0];
        echo $c . '.png';

Получилось:
пример_книги_Посібник_експлуатації_1.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы