Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTMLDOM:使用php根据数据属性值删除特定的div_Php_Html_Codeigniter - Fatal编程技术网

HTMLDOM:使用php根据数据属性值删除特定的div

HTMLDOM:使用php根据数据属性值删除特定的div,php,html,codeigniter,Php,Html,Codeigniter,我是codeigniter的新手。我得到如下所示的html字符串表单数据库 <div class="rockfm-form-container uiform-wrap"> <div class="rockfm-alert-container"></div> <form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form

我是codeigniter的新手。我得到如下所示的html字符串表单数据库

<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id"> 
<input type="hidden" value="0" class="_rockfm_wizard_st" > 
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post ---> 
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit"> 
<input type="hidden" value="rocket_front_submitajaxmode" name="action"> 
<div class="uiform-main-form">
 <div class="uiform-step-content" >
    <div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
    <div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
    <div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
    <div id="rockfm_uiwdtl19w05" data-idfield="uiwdtl19w05" data-typefield="10" class="rockfm-select rockfm-field " ></div>
    <div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
    <div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
 </div>
</div>
</form>
</div>
请告诉我是否有任何选项只从HTMLDOM中删除特定的div。我希望我的代码输出是这样的

<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id"> 
<input type="hidden" value="0" class="_rockfm_wizard_st" > 
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post ---> 
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit"> 
<input type="hidden" value="rocket_front_submitajaxmode" name="action"> 
<div class="uiform-main-form">
  <div class="uiform-step-content" >
     <div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
     <div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
     <div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
     <div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
     <div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
   </div>
 </div>
 </form>
</div>

您的代码大部分都在那里,但主要部分是删除节点,我已将测试更改为如果状态为0,则使用
removeChild()
删除元素。那么文档应该只包含您想要在结尾的
元素

foreach ($xpath->query("//div[@data-typefield]") as $item)
{
    $typefield = $item->getAttribute('data-typefield');
    if($field_array[$typefield] == 0)
    {
        $item->parentNode->removeChild($item);
    }
}

echo $doc->saveHTML();

我正在寻找的这个解决方案非常有效
<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id"> 
<input type="hidden" value="0" class="_rockfm_wizard_st" > 
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post ---> 
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit"> 
<input type="hidden" value="rocket_front_submitajaxmode" name="action"> 
<div class="uiform-main-form">
  <div class="uiform-step-content" >
     <div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
     <div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
     <div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
     <div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
     <div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
   </div>
 </div>
 </form>
</div>
foreach ($xpath->query("//div[@data-typefield]") as $item)
{
    $typefield = $item->getAttribute('data-typefield');
    if($field_array[$typefield] == 0)
    {
        $item->parentNode->removeChild($item);
    }
}

echo $doc->saveHTML();