【问题标题】:How to add elements to existing HTML using DomDocument?如何使用 DomDocument 向现有 HTML 添加元素?
【发布时间】:2015-07-15 03:15:20
【问题描述】:

我有以下选择下拉菜单

<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>

【问题讨论】:

    标签: php html dom


    【解决方案1】:

    我无法得到答案,所以写了一个带有一些脏正则表达式的 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 类的更好方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多