php как обрезать строку

114
04 марта 2021, 07:00

Всем привет! сейчас такое

 $n = 21;
 $a = strlen($yaml);
 $String = substr($yaml , $n , $a);

обрезается часть строки с датой (21 символ) строка:

date: "26-06-19 9:52"
taxonomy:
    category: blog
    tag:
        - publ
        - vip

проблема в том что в некотое время суток становится 22 символа (date: "26-06-19 10:52"), довавить пробол нельзя - т.к. потом на место даты записывается другая дата, которая может быть 21 или 22 символа (все уплывет) как правильно обрезать строку?

Answer 1

как правильно обрезать строку?

Вариантов может быть несколько, например один из них - получать необходимую подстроку с помощью регулярных выражений:

$string = 'date: "26-06-19 19:52"
taxonomy:
    category: blog
    tag:
        - publ
        - vip';
echo preg_replace('~date:[\s:\d"-]+\s~', '', $string);

Результат:

taxonomy:
category: blog
    tag:
        - publ
        - vip
Answer 2

Обратите внимание, что за задачей обрезать строку вероятно скрывается более точная задача: убрать свойство date из данных сериализованных в yaml. Это значит, что то, что вы собираетесь делать, называется парсингом. Вы можете написать свой парсер или использовать готовые решения (например yaml_parse или symfony/yaml).

Если же вы хотите просто отбросить первую строку то обрезайте с первого переноса строки:

$str = 'date: "26-06-19 9:52"
taxonomy:
    category: blog
    tag:
        - publ
        - vip';
echo substr($str, strpos($str, "\n"));
READ ALSO
Вывод списка друзей laravel

Вывод списка друзей laravel

есть таблица друзей

99
Я так понимаю, проблема с загрузчиком классов!

Я так понимаю, проблема с загрузчиком классов!

В общем моя проблема выглядит вот так:

98
Ajax принимает в не те данные в ответ

Ajax принимает в не те данные в ответ

ajax отправляет форму, все работает

103