str_replace для замены строки mutliple - php & laravel - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу заменить несколько строк в моем учебном приложении. Это то, что у меня сейчас, но это не работает, как хотелось.

Контроллер

public function replaceStrings()
{
      $data = 13; 
      $age = 11; 
      $cod = 45;
      $test = "My data is %data%, My age is %age%, My cod is %cod%";          
      $new_message =  str_replace('%data%',$data,'%age%','$age','%cod%','$cod', $text); 
      return $new_message;          
}

Я ожидаю, что функция вернет сообщение "Мои данные 13, Мой возраст 11, Мой возраст 45".

Как мне это сделать, пожалуйста?

Ответы [ 2 ]

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

Я бы предложил использовать для этого sprintf().

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

    $data = 13; 
    $age = 11; 
    $cod = 45;

    $text = "My data is %s, My age is %s, My cod is %s";
    $new_message =  sprintf($text, $data, $age, $cod);
0 голосов
/ 06 ноября 2018

Вы должны сделать их как массивы:

  $replace = [
     '%data%' => 13, 
     '%age%' => 11, 
     '%cod%' => 45
  ];
  $test = "My data is %data%, My age is %age%, My cod is %cod%";          
  $new_message =  str_replace(array_keys($replace), $replace, $text); 
  return $new_message;    

Вы можете использовать 2 массива, но я предпочитаю использовать один, так как он сохраняет все в порядке.

Приветствия.

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