你的意思是只保留HTML代码吗?
<?php
$s = "<b>example: </b>, example:
<div align=left>this is a test</div>, this is a test";
preg_match_all( "/<.*>/isU", $s, $ar );
echo implode("", $ar[0]);
?>

解决方案 »

  1.   

    不是啊 我恰恰是想过滤掉<></>中的值,想得到这些tag的名称
    因为我现在的xml字符串不是标准的,常常是<div align=left> <img align=bottom>等等,在这些<tag>里面的 left bottom等是没有双引号的,这样用xml解析函数就会出错
    所以我就想把这些<tag>的名称全部提取出来,就是"<b>" "</b>" "<div align=left" "</div>"简单的说就是 我想得到一个字符串里 所有的以"<"为开头,以">"为结尾的字符串的值,将他们放到一个数组里谢谢!
      

  2.   


    我在实际中的应用就是想把 如下的字符串
    <img border=0 align=absbottom src="IMAGES/DIC/PN/046.GIF">
    <img border=0 align=absbottom src="IMAGES/DIC/PN/021.GIF">
    <span id=dropdownid>Mary <font class=engi>made</font> a paper boat.</span>替换成
    <img border="0" align="absbottom" src="IMAGES/DIC/PN/046.GIF">
    <img border="0" align="absbottom" src="IMAGES/DIC/PN/021.GIF">
    <span id="dropdownid">Mary <font class="engi">made</font> a paper boat.</span>因为xml解析器要求<tag xx=yy uu=vv>,这里yy,vv必须有双引号,不然就会出错~谢谢!
      

  3.   

    <?php
    $s = "<b>example: </b>, example:
    <div align=left>this is a test</div>, this is a test";
    preg_match_all( "/<.*>/isU", $s, $ar );
    foreach($ar[0] as $value)
    {
    echo htmlspecialchars($value)."<br>";
    }
    ?>
      

  4.   

    <?php
    $text="<a href='#'>123</a><div>123232</div>";
    preg_match_all('/<.*>/iU',$text,$string);
    print_r($string);//可以通过查看源文件就知道结果了
    ?>
      

  5.   

    define("PREG_SPLIT_ALL", PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
    $ar = preg_split("/(<\/?\w+.*?>)/is", $tpl, -1, PREG_SPLIT_ALL);详情见http://community.csdn.net/Expert/TopicView.asp?id=4202101
    虽然还有点bug
      

  6.   

    谢谢!
    不好意思 刚才我测试的时候 在页面上没有看到数据(其实是由于<>被html过滤掉了)就以为不对那请问各位 能不能再帮我把 <tag xx=yy uu=vv> 改成yy,vv加双引号的呢?
    万分感谢!
      

  7.   

    在我的那个代码中,不但嫩分析html文档而且可以重新生成html文档和找出没有关闭的标记。自然对xml更是不在话下了
      

  8.   

    谢谢各位解答!唠叨老大的那个类太强了~
    It's awesome!