Попытка захватить строку с одной подстрокой static и одной динамикой

Вопрос:

Я пытаюсь найти лучший способ захватить динамическую подстроку, но после этого заменить весь контент.

Это то, чего я пытаюсь достичь:

{table_telecommunications}

{table_ всегда {table_ и та же, единственное, что меняется, — это telecommunications}.

Я хочу захватить слово телекоммуникации, поэтому я могу выполнить поиск в таблице MySQL, а затем заменить {table_telecommunications} на возвращаемый контент.

Я думал о создании strpos а затем explode и так далее.

Но я думаю, было бы проще с регулярным выражением, но у меня нет навыков создания регулярных выражений.

Не могли бы вы дать мне лучший способ сделать это?

Изменить: я говорю, что возможно регулярное выражение — лучший способ, потому что мне нужно найти строки, которые находятся в этом формате, но вторая часть является переменной, как {table_*}

Лучший ответ:

Используйте Regex.

<?php
    $string = "{table_telecommunications} blabla blabla {table_block}";
    preg_match_all("/\{table_(.+?)\}/is", $string, $matches);
    $substrings = $matches[1];

    print_r($substrings);
?>

Ответ №1
if (preg_match('#table_([^}]+)}#', '{table_telecommunications}', $matches)){
echo $matches[1];
}

Это регулярное решение. Вы можете сделать то же самое с взрывом:

$parts = explode('table_', '{table_telecommunications}');
echo substr($parts[1], 0, -1);

Ответ №2
$input = '{table_telecommunications}';
$table_name = trim(implode('_', array_shift(explode($input, '_'))), '}');

Должно быть быстрым, никакого регулярного выражения не требуется.

Оцените статью
TechArks.Ru
Добавить комментарий