preg取代不产生预期的结果

时间:2016-07-05 08:09:21

标签: php regex preg-replace

如何使用preg替换alt? 我只是写了这段代码,semms不起作用。

$zmieniamy = get_content();
$slowokluczowe[0] = '1';
$slowokluczowe[1] = '2';
$slowokluczowe[2] = '2';
$slowokluczowe[3] = '3';
$slowokluczowe[4] = '4';
$k = array_rand($slowokluczowe);

echo preg_replace('/alt="(.*?)"/', $slowokluczowe[$k], $zmieniamy);

任何提示? :)

2 个答案:

答案 0 :(得分:0)

你的数组键有些奇怪的事情。即: $k = array_rand($slowokluczowe); 其次是 : $slowokluczowe[$k]

$ k已经是一个随机数组值(和一个字符串)。为什么再次使用它作为键(在数字索引数组上)?

$zmieniamy = get_content();
$slowokluczowe[0] = '1';
$slowokluczowe[1] = '2';
$slowokluczowe[2] = '2';
$slowokluczowe[3] = '3';
$slowokluczowe[4] = '4';
$k = array_rand($slowokluczowe);

echo preg_replace('/alt="(.*?)"/', $k, $zmieniamy);

答案 1 :(得分:0)

以@Ben Hillier的答案为基础。

我假设您要保留“alt”,因此这是经过调整的preg_replace()

$zmieniamy = '<img src="src" alt="alt">';
$slowokluczowe[0] = '1';
$slowokluczowe[1] = '2';
$slowokluczowe[2] = '2';
$slowokluczowe[3] = '3';
$slowokluczowe[4] = '4';
$k = array_rand($slowokluczowe);

echo preg_replace('/alt="(.*?)"/', 'alt="'. $k .'"', $zmieniamy); // <img src="src" alt="2">