page contents

使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值

轩辕小不懂 发布于 2021-06-04 16:55
阅读 475
收藏 0
分类:PHP开发
  • PHP
  • (需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串
    956
    Pack
    Pack

    <?php

        header("content-type:text/html;charset=utf-8");


        function getAttrValue($str,$tagName,$attrName){

            $pattern1="/<".$tagName."(s+w+s*=s*(['"]?)([^'"]*)())*s+".$attrName."s*=s*(['"]?)([^'"]*)()(s+w+s*=s*(['"]?)([^'"]*)(9))*s*>/i";


            $arr=array();

            $re=preg_match($pattern1,$str,$arr);


            if($re){

                echo"<br/>$arr[6]={$arr[6]}";

            }else{

                echo"<br/>没找到。";

            }


        }


        // 示例


        $str1="<test attr='ddd'>";

        getAttrValue($str1,"test","attr");//找test标签中attr属性的值,结果为ddd


        $str2="<test2 attr='ddd'attr2='ddd2't1="t1 value"t2='t2 value'>";


        getAttrValue($str2,"test2","t1");//找test2标签中t1属性的值,结果为t1 value


    ?>

    请先 登录 后评论