首页 > 后端开发 > php教程 > 批量向html中插入内容

批量向html中插入内容

WBOY
发布: 2016-06-23 13:49:47
原创
1508 人浏览过

网站有很多html页面,现在需要做移动适配,需要在这些html的页面

中插入一行JS引用,
插入这样的
<script></script>

请教下能不能用php批量修改插入,因为这些页面结构都是一样的,还是只能手动一个个的修改


回复讨论(解决方案)

foreach('路径/*.hyml') as $fn) {  file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($fn)));}
登录后复制
登录后复制

批量转换工具.exe

谢谢,我去试试

foreach('路径/*.hyml') as $fn) {  file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($fn)));}
登录后复制
登录后复制



用这个方法会提示:Invalid argument supplied for foreach(),我是这么写
foreach(('tiezi/20140610/*.html') as $fn) {  file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($fn)));}
登录后复制

/** 遍历文件夹及文件类*   Date:   2013-03-21*   Author: fdipzone*   Ver:    1.0**   Funcitons*   process 遍历文件及文件夹*   handle  处理文件方法*/class FindFile{ // class start    public $files = array();    // 存储遍历的文件    protected $maxdepth;        // 搜寻深度,0表示没有限制    /*  遍历文件及文件夹    *   @param String $spath     文件夹路径    *   @param int    $maxdepth  搜寻深度,默认搜寻全部    */    public function process($spath, $maxdepth=0){        if(isset($maxdepth) && is_numeric($maxdepth) && $maxdepth>0){            $this->maxdepth = $maxdepth;        }else{            $this->maxdepth = 0;        }        $this->files = array();        $this->traversing($spath); // 遍历    }    /*  遍历文件及文件夹    *   @param String $spath 文件夹路径    *   @param int    $depth 当前文件夹深度    */    private function traversing($spath, $depth=1){        if($handle = opendir($spath)){            while(($file=readdir($handle))!==false){                if($file!='.' && $file!='..'){                    $curfile = $spath.'/'.$file;                    if(is_dir($curfile)){ // dir                        if($this->maxdepth==0 || $depth<$this->maxdepth){ // 判断深度                            $this->traversing($curfile, $depth+1);                        }                    }else{  // file                        $this->handle($curfile);                    }                }            }            closedir($handle);        }    }    /** 处理文件方法    *  @param String $file 文件路径    */    protected function handle($file){        if(strtolower(substr($file,-4))=='html'){            file_put_contents($file, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($file)));        }    }} // class end$obj = new FindFile();$obj->process('tiezi/20140610');
登录后复制

不好意思,我漏了关键函数

foreach(glob('tiezi/20140610/*.html') as $fn) {  file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($fn)));}
登录后复制
登录后复制

可以定义一个方法,加载js文件的,如:

php

$jslink = "";
$jslink .= "";
$jslink .= "";
$jslink .= "";
$jslink .= "";
$this->assign('jslin',$jslink);


html
{$jslink}

很多页面结构一样的html?
我个人建议楼主先整理一下架构...

不好意思,我漏了关键函数

foreach(glob('tiezi/20140610/*.html') as $fn) {  file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script></head>', file_get_contents($fn)));}
登录后复制
登录后复制



这个OK,现在想问下,这种添加出来的格式是:,在源文件中和JS
引用在一行,请问下怎么能让换行,这样好看点
在网上找了方法,
file_put_contents($fn, str_replace('', '\r\n',
添加'\r\n',没用

\r\n 在双引号中才会生效

file_put_contents($fn, str_replace('</head>', "<script src='m.js' type='text/javascrip'></script>\r\n</head>",
登录后复制
登录后复制

\r\n 在双引号中才会生效

file_put_contents($fn, str_replace('</head>', "<script src='m.js' type='text/javascrip'></script>\r\n</head>",
登录后复制
登录后复制
 


这样就可以了,非常感谢
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板