如何使用DomDocument向现有HTML添加元素?

时间:2015-07-14 16:40:52

标签: php html dom

我有以下选择下拉列表

<select name="set_login_redirect" id="set_login_redirect">
    <option value="dashboard">WordPress Dashboard</option>
    <option class="level-0" value="1881">Activate</option>
    <option class="level-0" value="2109">Affiliate Area</option>
    <option class="level-0" value="429">Cart</option>
    <option class="level-0" value="430">Checkout</option>
</select>

如何使用PHP DomDocument类向option下拉列表添加新的select元素。

例如,我想将以下代码添加到上面的HTML中。

怎么做?

<option class="level-0" value="27">The Word</option>

1 个答案:

答案 0 :(得分:0)

我无法得到答案所以写了一个带有一些脏正则表达式的PHP函数来解决它。

/**
 * Append an option to a select dropdown
 *
 * @param string $option option to add
 * @param string $select select dropdown
 *
 * @return string
 */
function pp_append_option_to_select($option, $select) {
    $regex = "/<select ([^<]*)>/";

    preg_match($regex, $select, $matches);
    $select_attr = $matches[1];

    $a = preg_split($regex, $select);

    $join = '<select ' . $select_attr . '>' . "\r\n";
    $join .= $option . $a[1];

    return $join;
}

实施例

$a = pp_append_option_to_select('<option value="current">Current page</option>', $xml);

print_r($a);

希望有一天有人觉得这很有用。

仍然可以使用DomDocuement类更好地实现此目的。