PHP заменяет динамические переменные - PullRequest
0 голосов
/ 29 апреля 2019

Я заменяю динамические строки таким образом, и это работает.

<?php
$data = 'wow@example.org|Foo|2019|....|x_Param';
$parts = explode("|", $data);

$text = 'Hello [-param_1-] Your email is [-param_0-]';
$new_text = str_replace('[-param_0-]', $parts[0], $text);
$new_text = str_replace('[-param_1-]', $parts[1], $new_text);
$new_text = str_replace('[-param_2-]', $parts[2], $new_text);
# .... param_X

echo $new_text;
# Out: Hello Foo Your email is wow@example.org

?>

Как его улучшить, то, как я это делаю, неэффективно, и, если есть 9999.X, как его заменить ..

Я ценю вашу помощь

Edi - Решение:

<?php
$data = 'wow@example.org|Foo|2019|....|x_Param';
$parts = explode("|", $data);

$text = 'Hello [-param_1-] Your email is [-param_0-]';

//$text = 'Hello [-param_1-] Your email is [-param_0-]';

$new_text = $text;
foreach($parts as $i => $part){
    $new_text = str_replace('[-param_'.$i.'-]', $part, $new_text);  
}

echo $new_text;


?>

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Ну, вы можете использовать только одно str_replace, например:

<?php
$data = 'wow@example.org|Foo|2019|....|x_Param';
$parts = explode("|", $data);

$text = 'Hello [-param_1-] Your email is [-param_0-]';
$params = ['[-param_0-]', '[-param_1-]', '[-param_2-]'];
$new_text = str_replace($params, $parts, $text);

echo $new_text;
# Out: Hello Foo Your email is wow@example.org

?>

Да, str_replace () будет принимать массивы.

Если у вас есть множество параметров, вы можете сгенерировать массив $params, используя цикл, но лично я бы использовал что-то более значимое. Поэтому вместо [-param_0-] у меня будет %%email%% и т. Д.

0 голосов
/ 29 апреля 2019
<?php
$data = 'wow@example.org|Foo|2019|....|x_Param';
$parts = explode("|", $data);

$text = 'Hello [-param_1-] Your email is [-param_0-]';

//$text = 'Hello [-param_1-] Your email is [-param_0-]';

$new_text = $text;
foreach($parts as $i => $part){
    $new_text = str_replace('[-param_'.$i.'-]', $part, $new_text);  
}

echo $new_text;


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