Как найти и заменить текстовую строку на определенный символ (PHP)? - PullRequest
0 голосов
/ 27 апреля 2018

В PHP, у меня есть такая строка:

"Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Sed cursus ante dapibus {diam}.";

и я хочу найти и replace слов внутри {} с "BINGO".

Результаты:

"Lorem ipsum dolor sit amet, BINGO adipiscing elit. Sed cursus ante dapibus BINGO."

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Вы можете использовать preg_replace

<?php
$string = 'your String';
$pattern = '/\{(.*?)\}/';
$replacement = 'BINGO';
echo preg_replace($pattern, $replacement, $string);
?>
0 голосов
/ 27 апреля 2018

Вы можете использовать preg_match () с str_replace -

$str = "Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus {diam}. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.";

preg_match('{(.*)}', $str , $matches);

print_r($matches);

output - Array ( [0] => {hello:{}{}yooohooo} [1] => {hello:{}{}yooohooo} ) 

Используйте этот вывод внутри функции str_replace () php

echo str_replace($matches[0],"Your Replacing string",$str);

OR

Вы можете использовать функцию preg_replace ()

 $replace_str = preg_replace('{(.*)}', "Your Replacing string", $str);

   echo $replace_str;

Надеюсь, это вам поможет!

0 голосов
/ 27 апреля 2018

Попробуйте это:

<?php
$vars = [
    'consectetur' => 'BINGO',
    'diam' => 'BINGO'
];

$str = "Lorem ipsum dolor sit amet, {consectetur} adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus {diam}. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.";

$parsed = preg_replace_callback("/\{([\w\_]{1,})\}/", function ($match) use ($vars) {
    return array_key_exists($match[1], $vars) ? $vars[$match[1]] : '';
}, $str);

echo $parsed;

https://3v4l.org/BbtbK

Или, как вам кажется, это бесполезно.

echo preg_replace("/\{(.*?)\}/", 'BINGO', $str);

https://3v4l.org/AHGXP

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