zoukankan      html  css  js  c++  java
  • php正则替换 某些字符串,html替换某些标签,Thinkphp3升级Thinkphp5替换模版标签

     虽然Thinkphp5可以更改HTML模版标签,的前后字符,

     但是又没搜到相关的正则替换某些字符串,所以就看了下正则相关文档,分享给大家吧!

      

    <?php  
    /*/Public/Home/default/re.php
    文本替换 小工具
    QQ496631085
    XiaoHe
    */
        
        //打印变量标签好调试
        function p($data){
            if(is_array($data)){
                var_dump($data);
            }else{
                echo '<br>'.$data.'<br>';
            }
        }
    
        //分割后缀
        function getExt2($filename){
           $ext = strrchr($filename,'.');
           return $ext;
        }
        
    
        function re_tihuan($val){
        /*
        preg_replace 正则替换
        strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。
        */
    
            // <block name="page-style">
            $newval=preg_replace('/(<)(block .*?)(>)/','{$2}',$val);
            // 替换结果{block name="page-style"}
        
            
            
            // <extend name="System:base"/>
            $newval=preg_replace('/(<)(extend .*?)(:)(.*?)(>)/','{$2_$4}',$newval);
            // 替换结果 {extend name="System_base"/}
    
    
            // <volist name="data.list" id="vo">
            $newval=preg_replace('/(<)(volist.*?)(>)/','{$2}',$newval);
            // 替换结果{volist name="data.list" id="vo"}
    
    
            // <empty name="data.list">
            $newval=preg_replace('/(<)(empty.*?)(>)/','{$2}',$newval);
            //替换结果 {empty name="data.list"}
            return $newval;
        }
        
        function tihuan1($val)
        {//替换内容
            $list=[
            //     '<block name="page-style">'=>'{block name="page-style"}',
            // '<block name="page-style-detail">'=>'{block name="page-style-detail"}',
            // '<block name="page-content">'=>'{block name="page-content"}',
            '</block>'=>'{/block}',
            '</volist>'=>'{/volist}',
            '</empty>'=>'{/empty}'
            ];
              $content=$val;
            foreach ($list as $old => $new) {
                  $content=str_replace($old,$new,$content);
              }
          echo('____________________________________________________________<br><br><br><br>');
          return $content;
        }
    
    
    
        //获取当前文件所在的绝对目录
        $dir =  dirname(__DIR__)."applicationconsole\view";
        // p($dir);
        //扫描文件夹
        $file = scandir($dir);
        //显示
    
        $htmlarr=array(); // 把html文件加入到数组
        foreach ($file as $key => $name) {
            if(getExt2($name)=='.html'){
                array_push($htmlarr,$name);
            }
        }
        // p($htmlarr);
        // exit();
        $XiaoHeQQ496631085=0;
        foreach ($htmlarr as $key1 => $name) {
            // if($name!='Shopsz_page_set.html'){
            //     continue;
            // }
    
    
            $file_path = $dir.'/'.$name;
            p("打开".$file_path);
            $content=file_get_contents($file_path);
            
            $newcontent=tihuan1($content);
            
    
            echo "修改{$name}ing...<br>";
            $newcontent = re_tihuan($newcontent);
            
            $fugai=1;//覆盖源文件
            if($fugai){
                
                // p($newcontent);
                // exit();
                file_put_contents($file_path,$newcontent);
            }else{
                $dirz='newhtml';
                $dirc = iconv("UTF-8", "GBK", $dirz);
                if (!file_exists($dirc)){
                    mkdir($dirc,0777,true);
                    echo '创建文件夹'.$dirc.'成功';
                } 
                file_put_contents($dirz.'/'.$name,$newcontent);
                echo 'newhtml/'.$name.'</br>';
                // echo " <pre>";
                
                    // echo "_______________________________________________________________________</br>";
                echo "<br>修改/newhtml/{$name}成功";
                // $newcontent = re_tihuan($newcontent);
            
            }
            $XiaoHeQQ496631085++;
    
        }
        echo "总共替换{$XiaoHeQQ496631085}个文件";
    
    ?>

    上面注释里面 有相关的测试结果!

  • 相关阅读:
    代码中回调的用法
    关于导入外部样式表的目录问题
    js操作元素样式
    JavaSE学习总结第10天_面向对象5
    JavaSE学习总结第09天_面向对象4
    JavaSE学习总结第08天_面向对象3
    JavaSE学习总结第07天_面向对象2
    JavaSE学习总结第06天_Java语言基础2 & 面向对象1
    JavaSE学习总结第05天_Java语言基础1
    JavaSE学习总结第03天_Java基础语法2
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/13295401.html
Copyright © 2011-2022 走看看