$str = <<<ETO
<div>
   header
</div>
<ul>
<li> </li>
<li> </li>
<li> </li>
</ul>
<p>
  footer
</p>
ETO;
$str = preg_replace("/<[^\/>]*>([\s]?)*<\/[^>]*>/s", '', $str); 
echo $str;如何所有的HTML空标签全都去除掉。
像上面这种ul里嵌套li的,li去除掉以后,ul也是空的,如何用一句正则,把ul和li全都去掉?

解决方案 »

  1.   

    这个可以用正则表达式了,然后用PHP的函数。
    这里有些例子可供参考:
    http://wenku.baidu.com/view/24bc6b096c85ec3a87c2c597.html
    http://www.openwin.cn/html/2012/1116/81.html
      

  2.   


    那你直接去匹配ul和li不就是的。
      

  3.   

    如果实际环境中不止ul,li呢?还有p,span,em等……
      

  4.   

    用php自带函数去除html标记语法: string strip_tags(string str);http://www.php100.com/html/webkaifa/PHP/PHP/2010/0728/5074.html
      

  5.   

    是啊,正则有没有GLOBAL设置?
    如果环境再复杂一点,不想一样的代码写2遍,3遍,更不想让简单的问题,用DOM解析去除。
      

  6.   

    string strip_tags(string str);貌似这个比较给力