массивы — заменить строковое значение src на данные uri

Добрый день.

У меня есть массив, который содержит данные URI IMG.

$var =
array(
[0] => data:image/png;base64,iVBORw0KGgoAA...
[1] => data:image/png;base64,Rw0KKGgoasWAA...
);

И у меня есть строка.

$foo = '<p>test 7/31/2</p> <p>&nbsp;<img src="/media/1.png" alt="" /></p> <p><img src="/media/2.png" alt="" /></p>';

Как я могу заменить src в $foo с массивом данных URI в $var?

Результат будет похож.

$foo = '<p>test 7/31/2</p> <p>&nbsp;<img src="data:image/png;base64,iVBORw0KGgoAA..." alt="" /></p> <p><img src="data:image/png;base64,Rw0KKGgoasWAA..." alt="" /></p>';

Любые идеи подойдут!

1

Решение

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

$images = [
"/media/1.png" => 'data:image/png;base64,iVBORw0KGgoAA...',
"/media/2.png" => 'data:image/png;base64,Rw0KKGgoasWAA...'
];

$url = '<p>test 7/31/2</p> <p>&nbsp;<img src="/media/1.png" alt="" /></p> <p><img src="/media/2.png" alt="" /></p>';
$url = str_replace(array_keys($images), array_values($images), $url);
1

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

Как насчет этого?

<?php

$array = array(
'data:image/png;base64,iVBORw0KGgoAA',
'data:image/png;base64,Rw0KKGgoasWAA'
);

$string = '<p>test 7/31/2</p> <p>&nbsp;<img src="'.$array[0].'" alt="" /></p> <p><img src="'.$array[1].'" alt="" /></p>';

echo $string;
0