Замена одного значения на другое в строке

357
25 июня 2017, 16:45

Есть исходная строка Тип_разъема=AM4&Количество_ядер=4, в которой необходимо заменить AM4 и 4 на 'AM4' и '4' соответственно.

$explode = explode("&", $translate);
foreach ($explode as $key)
{
    $s = explode("=", $key);
    $i = 0;
    foreach ($s as $k)
    {
        if($i % 2 == 1)
        {
            // echo $s[$t];
            $translate = str_replace($k, "'".$k."'", $translate);
        }
        $i++;
        // if($i == 2)
        // {
        //  $translate = str_replace($k, "'".$k."'", $translate);
        // }
    }
}

Но в итоге получается вот это: Тип_разъема='AM'4''&Количество_ядер='4'. Со строкой, в которой нет повторяющихся чисел, все нормально работает. Пробовал сделать какой-то лимит для str_replace, но все равно ничего не выходит. Как можно решить эту проблему?

Answer 1

Если я правильно понял, то могу предложить такое, не самое красивое, но работающее решение.

<?php
$text = "Тип_разъема=AM4&Количество_ядер=4";
$text = str_replace("=" ,"='" , $text);
$text = str_replace("&" ,"'&" , $text);
$text =  $text."'";
echo $text;
//Выводит 
//Тип_разъема='AM4'&Количество_ядер='4'
?>
Answer 2

Александр Анашкин, изучайте синтаксис регулярных выражений.

$text = 'Тип_разъема=AM4&Количество_ядер=4';
echo preg_replace('~(?<==)|(?=&|$)~', '\'', $text);
READ ALSO
PHP MySQL хранение реквестов

PHP MySQL хранение реквестов

Подскажите, в очень нагруженных проектах бывают таблицы реквестов сплошняком, или хранят только суммарную информацию?

330
Callback telegram бот

Callback telegram бот

Всем приветУчусь делать чат-ботов

335
Как передать GET значение параметра в AJAX request

Как передать GET значение параметра в AJAX request

ЗдравствуйтеВ адресной строке ссылка вида site

238
Как перенести структуру таблиц с одной базы в другую?

Как перенести структуру таблиц с одной базы в другую?

Пример: У меня на локальном сервере есть база и на хостингеЯ работаю только на локальном и за тем заливаю на хост Допустим я сделал изменения...

232