如何在<h2>之后添加数字范围?</h2>

时间:2014-02-13 09:50:55

标签: php

如何在&lt; h2&gt;?

之后添加数字范围

请参阅下面的代码:

<pre>
<?php
$html='
    <h2>hello</h2>
    <p>hello world</p>
    <h2>good</h2>
    <p>godd day</p>
';

$nums=array(30,55);
// how can I replace $html and get result like this:
// put <span>xx</span> after </h2>
$html='
    <h2>hello</h2><span>30</span>
    <p>hello world</p>
    <h2>good</h2><span>55</span>
    <p>godd day</p>
';

2 个答案:

答案 0 :(得分:2)

正如Mark Ba​​ker在评论中建议的那样,你可以使用preg_replace_callback() perharps。

$html='
    <h2>hello</h2>
    <p>hello world</p>
    <h2>good</h2>
    <p>godd day</p>
';

$nums=array(30,55);
$index = 0;

function add_number($match) {
    global $nums, $index;
    return $match[0]."<span>".(@$nums[$index++])."</span>";
}

echo preg_replace_callback("/\/h2>/","add_number",$html);

如果您不想两次添加数字,可以将模式更改为/\/h2>(?!<span>)/

答案 1 :(得分:0)

也许可以使用

foreach ( $nums as $key => $val ) { .. } 

并生成$ html。