2016-11-04 79 views
0

我需要從使用PHP的HTML中刪除所有選項下拉菜單。從HTML刪除<select>使用PHP

我認爲preg替換會做到這一點,但我不知道如何使用它。

所有的html都在一個變量中。

$html = " 

<p> something </p> 

<select name='bla' id='bla' class='REMOVE'> 
<option></option> 
<option></option> 
<option></option> 
<option></option> 
</select> 

<p> something </p> 

<p> something </p> 

"; 

轉換爲....

$html = " 

<p> something </p> 

<p> something </p> 

<p> something </p> 

"; 
+2

請勿使用'preg_replace'。看看http://stackoverflow.com/questions/15272726/how-to-delete-element-with-domdocument和/或更大的主題http://stackoverflow.com/questions/3577641/how-do-you-parse - 和 - 處理 - HTML-XML-中的PHP。 – chris85

+0

請在這裏給你想要的輸出? –

+1

[PHP函數刪除字符串中某些字符之間的所有內容]的可能重複(http://stackoverflow.com/questions/13031250/php-function-to-delete-all-between-certain-characters-in-串) – jitendrapurohit

回答

0

您可以簡單地使用的explode()substr()implode()組合用一個簡單的循環來實現這一(如果你不喜歡使用正則表達式 - 這是......)。下面的代碼片段(您可能會在Quick-Test Here)演示如何:

<?php 

    $html = " 

       <p> something </p> 

       <select name='bla' id='bla' class='REMOVE'> 
       <option></option> 
       <option></option> 
       <option></option> 
       <option></option> 
       </select> 

       <p> something </p> 

       <p> something </p> 

       "; 

     $arrParts = explode("</select>", $html); 
     foreach($arrParts as &$part){ 
      if($selPos = strpos($part, "<select")){ 
       $part = substr($part, 0, $selPos); 
      } 
     } 
     $html = implode("", $arrParts); 
     var_dump($html);