Отфильтруйте данные из переменных и сохраните в другой в php - PullRequest
0 голосов
/ 01 ноября 2018

Вот мой код

<?php 

    $content = "Hello Guys how are you @[6] i hope you are doing well @[9]";

    $tags = ""; // Value under @[]

    echo $tags;

 ?>

Я хочу сохранить значение в тегах @ [] и $, разделенных запятой

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете использовать preg_match_all [ 1 ], чтобы получить содержимое между всеми @[] частями. Затем implode [ 2 ] результат для получения строки, разделенной запятой.

<?php

define('FIRST_MATCH_GROUP', 1);

$content = "Hello Guys how are you @[6] i hope you are doing well @[9]";
$tags = [];
preg_match_all("/@\[(.)\]/", $content, $tags); // Value under @[]

$tags = implode(',', $tags[FIRST_MATCH_GROUP]);

var_dump($tags);

Рабочий пример:

https://3v4l.org/7kYH6

Выход для 5.6.38 - 7.3.0rc3

строка (3) "6,9"

Regex объяснение:

https://regex101.com/r/cxH6L3/1/

/ @ [(.)] /

@ соответствует символу @ буквально (с учетом регистра)

\ [соответствует символу [буквально (с учетом регистра)

1-я группа захвата (.)

. соответствует любому символу (кроме ограничителей строки)

\] соответствует символу] буквально (с учетом регистра)

РЕДАКТИРОВАТЬ: Для нескольких чисел от @[] вам необходимо настроить регулярное выражение на @\[(.+)\] и добавить флаг Ungreedy, см. https://regex101.com/r/cxH6L3/2 и https://3v4l.org/aj0Ln

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...