Как я могу извлечь определенные строки из текста и поместить их в массив?

#php

#php

Вопрос:

У меня есть текст, подобный

 Hello {{name}}, I am {{virtual_assistant_name}}, virtual assistant of {{company_name}}.
 

Как я могу извлечь эти строки внутри {{}} и поместить int в массив?

Комментарии:

1. Вы используете фреймворк?

2. Вы пробовали что-нибудь для достижения этого

3. Это текст для отправки сообщений в службу api WhatsApp

4. не используя какой-либо фреймворк. Я пытался найти решение, но ничего не нашел

5. @berend как работает этот инструмент?

Ответ №1:

Это создает требуемый результат, используя устройство разделения, которое я разработал при написании синтаксического анализатора JSON.

 $s='Hello {{name}}, I am {{virtual_assistant_name}}, virtual assistant of {{company_name}}.';

$a=[];
foreach(explode('}}',$s) as $v) {
    $t=explode('{{',$v);
    if (isset($t[1])) $a[]=$t[1];
}

print_r($a);
 

Вывод:

Массив
(
 [0] => имя
 [1] => virtual_assistant_name
 [2] => имя_компании
)

Игровая площадка

Предполагается, что строка правильно сформирована (т. Е. Равное количество {{ to }} , и никогда больше последнего) и не имеет вложенности.

Затем explode by }} , а затем explode каждая часть by {{ . Если есть 2 части, то значение существует, и поэтому добавьте его в массив.