PHP заменяет только первое вхождение в строке для каждого значения массива

У меня есть два массива: $ ORGvarvals (ORGvarvals содержит значения, которые необходимо заменить в String) & $ varvals (varvals содержит значения, которые должны быть заменены на ORGvarvals в строке)
$ ул (Содержит содержимое).

Это мой $ ORGvarval:

Array ( [0] => 56,231 [1] => abc [2] => 172.0.0.1 [3] => JMeter [4] => http://172.0.0.1/file/path/ [5] => ${__time(yyyy/MM/dd HH:mm:ss,)} [6] => API [7] => Unique [8] => /home/path/to/file/filename_${__time(yyyy-MM-dd_HH-mm-ss,)}.xls [9] => C:\xls\file\path\results${__time(ddMMyyyyHHmmss,)}.csv [10] => 172.0.0.1 [11] => 9999 [12] => 22 [13] => username [14] => password [15] => /tomcat/path [16] => C:\path\to\testdata [17] => jdbc:oracle:thin:db:details [18] => username1 [19] => password1 [20] => /USSD/API/URL?parameter [21] => /EXTGW/API/URL?parameter [22] => /USSD/API/URL?parameter2 [23] => /EXTGW/API/URL?parameter [24] => /EXTGW/API/URL?parameter5 [25] => /USSD/API/URL?parameter6 [26] => 310 [27] => 1234567890 [28] => 2468 [29] => 1357 [30] => 9876543210 [31] => 100 [32] => CC [33] => 500 [34] => 50 [35] => 100 [36] => 100 [37] => /path/to/logs [38] => 1237896540 [39] => 1357 [40] => abc@7891 [41] => 0 [42] => 0 [43] => 101 [44] => dd/MM/yy [45] => ADMIN [46] => abc@7891 [47] => 1357 [48] => 3 [49] => 10 [50] => jmeter_logs )

Я принимаю пользовательский ввод через форму, и все значения сохраняются в другой переменной $ varvals в том же формате.

Теперь я хочу найти значения $ ORGvarvals одно за другим в $ str и заменить их на $ varvals.

Я попробовал следующие два кода:

$str=str_replace($ORGvarvals, $varvals, $str);

$str=strtr($str, array_combine($ORGvarvals, $varvals));

Оба они не работают, как ожидалось. Они заменяют несколько вхождений в строке.

Я хочу найти все значения ORGvarvals одно за другим и заменить их, не путая уже замененные значения в случае дублирования значений

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]