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

解决方案 »

  1.   


    用这个方法会提示: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)));
    }
      

  2.   


    /** 遍历文件夹及文件类
    *   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');
      

  3.   

    不好意思,我漏了关键函数
    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)));
    }
      

  4.   

    可以定义一个方法,加载js文件的,如:php$jslink = "<script src=" m1.js" type="text/javascript"></script>";
    $jslink .= "<script src=" m2.js" type="text/javascript"></script>";
    $jslink  .= "<script src=" m3.js" type="text/javascript"></script>";
    $jslink  .= "<script src=" m4.js" type="text/javascript"></script>";
    $jslink  .= "<script src=" m5.js" type="text/javascript"></script>";
    $this->assign('jslin',$jslink);
    html
    <head>{$jslink}</head>
      

  5.   

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

  6.   


    这个OK,现在想问下,这种添加出来的格式是:<script src="m.js" type="text/javascript"></script></head>,在源文件中<head>和JS
    引用在一行,请问下怎么能让</head>换行,这样好看点
    在网上找了方法,  
    file_put_contents($fn, str_replace('</head>', '<script src="m.js" type="text/javascript"></script>\r\n</head>', 
    添加'\r\n',没用
      

  7.   

    \r\n 在双引号中才会生效
    file_put_contents($fn, str_replace('</head>', "<script src='m.js' type='text/javascrip'></script>\r\n</head>",