[英]preg_replace replacing with array
我想做的是用替换数组中的对应值替换输入字符串中的“ [replace]”。 值的总数将改变,但是替换数组中的数字始终与输入字符串中的数字相同。 我曾尝试使用preg_replace和preg_replace_callback来执行此操作,但我无法正确使用[replace]的模式,我也尝试使用vsprintf,但<table width="100%">
中的<table width="100%">
弄乱了它。 非常感谢所有帮助!
替换数组:
$array = array('value 1','value 2','value 3');
输入字符串
$string = '
<table width="100%">
<tr>
<td>Name:</td>
<td>[replace]</td>
</tr>
<tr>
<td>Date:</td>
<td>[replace]</td>
</tr>
<tr>
<td>Info:</td>
<td>[replace]</td>
</tr>
</table>
';
所需结果
<table width="100%">
<tr>
<td>Name:</td>
<td>value 1</td>
</tr>
<tr>
<td>Date:</td>
<td>value 2</td>
</tr>
<tr>
<td>Info:</td>
<td>value 3</td>
</tr>
</table>
您使用%%
转义表的%
:
$string = <<<EOD
<table width="100%%">
<tr>
<td>Name:</td>
<td>%s</td>
</tr>
<tr>
<td>Date:</td>
<td>%s</td>
</tr>
<tr>
<td>Info:</td>
<td>%s</td>
</tr>
</table>
EOD;
$array = array('value 1','value 2','value 3');
echo vsprintf($string, $array);
输出:
<table width="100%">
<tr>
<td>Name:</td>
<td>value 1</td>
</tr>
<tr>
<td>Date:</td>
<td>value 2</td>
</tr>
<tr>
<td>Info:</td>
<td>value 3</td>
</tr>
</table>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.