Как получить данные из строки?

193
19 декабря 2021, 03:30

У меня есть строка:

Здесь аудио и фото[ATTACHMENT]jpg/c2cbd77405f5802457bff4ff07c23cc76a6ca4f9291ef99b23bd0570dc23de30/1572189798_7c3bb82d9ace96a798ca.jpg[/ATTACHMENT][ATTACHMENT]mp3/f97aa34259401559d4592f42f5a0b04a162f1c46b05f4c17e5cb79ee0a3ccd94/abba_-_happy-new-year.mp3[/ATTACHMENT]

Как мне получить содержимое строки между [ATTACHMENT][/ATTACHMENT] и преобразовать в массив методами js и методами PHP?

Answer 1

Средствами PHP к примеру можно так:

$str = 'Здесь аудио и фото[ATTACHMENT]jpg/c2cbd77405f5802457bff4ff07c23cc76a6ca4f9291ef99b23bd0570dc23de30/1572189798_7c3bb82d9ace96a798ca.jpg[/ATTACHMENT][ATTACHMENT]mp3/f97aa34259401559d4592f42f5a0b04a162f1c46b05f4c17e5cb79ee0a3ccd94/abba_-_happy-new-year.mp3[/ATTACHMENT]';
$arr = [];
! preg_match_all('~\[ATTACHMENT]\K[^[]+(?=\[/ATTACHMENT])~', $str, $arr) ?: $arr = $arr[0];
var_export($arr);

Результат:

array (
  0 => 'jpg/c2cbd77405f5802457bff4ff07c23cc76a6ca4f9291ef99b23bd0570dc23de30/1572189798_7c3bb82d9ace96a798ca.jpg',
  1 => 'mp3/f97aa34259401559d4592f42f5a0b04a162f1c46b05f4c17e5cb79ee0a3ccd94/abba_-_happy-new-year.mp3',
)

UPD: Средствами JS можно так:

let str = 'Здесь аудио и фото[ATTACHMENT]jpg/c2cbd77405f5802457bff4ff07c23cc76a6ca4f9291ef99b23bd0570dc23de30/1572189798_7c3bb82d9ace96a798ca.jpg[/ATTACHMENT][ATTACHMENT]mp3/f97aa34259401559d4592f42f5a0b04a162f1c46b05f4c17e5cb79ee0a3ccd94/abba_-_happy-new-year.mp3[/ATTACHMENT]'; 
let re = /(?<=\[ATTACHMENT])[^[]+(?=\[\/ATTACHMENT])/g; 
let myArray = str.match(re); 
 
console.log( myArray );

READ ALSO
Неправильно работает drag &amp; drop в vanile js

Неправильно работает drag & drop в vanile js

Некорректно работает drag & drop, помогите найти ошибку или переписать уже существующий кодХотел реализовать это: внутри контейнера генирируются...

101
Компоненты в JavaScript

Компоненты в JavaScript

Всем доброго времени сутокПри изучении столкнулся с такой вот задачей, реализация компонентов в js

96
Некорректный вывод времени JavaScript

Некорректный вывод времени JavaScript

При выводе часов, минут и секунд , от 0 и до 10 данные выводятся одиночными цифрами , то есть 23:12:5 или 23:5:20, а нужно что бы было 23:12:05 или 23:05:20 Как...

96