• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php正则替换处理HTML页面的方法_PHP

php 搞代码 3年前 (2022-01-25) 28次浏览 已收录 0个评论

本文实例讲述了php正则替换处理HTML页面的方法。分享给大家供大家参考。具体如下:

]+?)/i'  * 4. frame src : '/<frame(.+?)src=([\'\" ])?(.+?)([ >]+?)/i'  * 5. js  : '/window.open([( ]+?)([\'" ]+?)(.+?)([ )+?])/i'  * 6. css  : '/background(.+?)url([( ])([\'" ]+?)(.+?)([ )+?])/i'  */ class Myreplace {  private $moudle_array = array('udata','tdata','tresult','dresult');  private $content;  private $relative_dirname;  private $projectid;  private $moudle;  function __construct() {   $this->CI = &get_instance ();  }  /**   * 替换   * @param string $content HTML内容   * @param string $relative 相对路径   * @param int  $projectid 项目id   * @moudle string $moudle  模板标识: udata,tdata,tresult,dresult   */  public function my_replace($content,$relative,$projectid,$moudle) {   $this->content = $content;   $this->relative_dirname = $relative;   $this->projectid = $projectid;   if(in_array(strtolower($moudle),$this->moudle_array))    $this->moudle = $moudle;   else exit;   switch($this->moudle) {    case 'udata':     $this->CI->load->model('mupload_data','model');     break;    case 'tdata':     $this->CI->load->model('taskdata','model');     break;    case 'tresult':     $this->CI->load->model('taskresult','model');     break;    case 'dresult':     $this->CI->load->model('dmsresult','model');     break;    default:     break;   }   $pattern = '/]+?)/i';   $content = preg_replace_callback( $pattern, array($this, 'image_replace') , $content );   $pattern = '/]+?)/i';   $content = preg_replace_callback( $pattern, array($this, 'html_replace') , $content );   $pattern = '/<iframe(.+?)src=([\'\" ])?(.+?)([ >]+?)/i';   $content = preg_replace_callback( $pattern, array($this, 'iframe_replace') , $content );   $pattern = '/<frame(.+?)src=([\'\" ])?(.+?)([ >]+?)/i';    $content = preg_replace_callback( $pattern, array($this, 'frame_replace'), $content );   $pattern = '/window.open([( ]+?)([\'" ]+?)(.+?)([ )]+?)/i';   $content = preg_replace_callback( $pattern, array($this, 'js_replace'), $content );   $pattern = '/background(.+?)url([( ])([\'" ]+?)(.+?)([ )+?])/i';   $content = preg_replace_callback( $pattern, array($this, 'css_replace'), $content);   return $content;  }  private function image_replace($matches) {   if(count($matches) relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($image_id) ) {    if($this->moudle == 'dresult') {     return "CI->config->item("base_url")."cdms/".$this->moudle."/readpic/$image_id?pid=".$this->projectid .$matches[2]. $matches[4];    } else {     return "CI->config->item("base_url")."cdms/".$this->moudle."/picfile/$image_id?pid=".$this->projectid .$matches[2]. $matches[4];    }   } else {    return "relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($txtfile_id ) ) {    if($this->moudle == 'dresult') {     return "CI->config->item("base_url")."cdms/".$this->moudle."/readfile/$txtfile_id?pid=".$this->projectid .$matches[2].$matches[4];    } else {     return "CI->config->item("base_url")."cdms/".$this->moudle."/txtfile/$txtfile_id?pid=".$this->projectid .$matches[2].$matches[4];    }   } else {    return "0)     $matches[3] = substr($matches[3],0,strrpos($matches[3],'#'));   //获取html的id   $parent_dir_num = substr_count( $matches[3], '../');   $relative_dirname = $this->relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($txtfile_id ) ) {    if($this->moudle == 'dresult') {       return "<iframe".$matches[1]."src=".$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/readfile/$txtfile_id?pid=".$this->projectid .$matches[2].$matches[4];    } else {     return "<iframe".$matches[1]."src=".$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/txtfile/$txtfile_id?pid=".$this->projectid .$matches[2].$matches[4];    }   } else {    return "<iframe".$matches[1]."src=".$matches[2].$matches[3].$matches[2].$matches[4];   }  }  private function frame_replace( $matches ) {      if(count($matches) 0)     $matches[3] = substr($matches[3],0,strrpos($matches[3],'#'));   //获取html的id   $parent_dir_num = substr_count( $matches[3], '../');   $relative_dirname = $this->relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($txtfile_id ) ) {    if($this->moudle == 'dresult') {      return "<frame".$matches[1]."src=".$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/readfile/$txtfile_id?pid=".$this->projectid.$matches[2].$matches[4];    } else {     return "<frame".$matches[1]."src=".$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/txtfile/$txtfile_id?pid=".$this->projectid.$matches[2].$matches[4];    }   } else {    return "<frame".$matches[1]."src=".$matches[2].$matches[3].$matches[2].$matches[4];   }  }  private function js_replace( $matches ){   if(count($matches) < 4) return '';   if( empty($matches[3]) ) return '';   //处理链接   $arr_html = split(',',$matches[3]);   $href = $arr_html[0];   $other = '';   for($i=0; $i0)     return "window.open".$matches[1].$matches[2].$matches[3].$matches[4];;   //获取html的id   $parent_dir_num = substr_count( $href, '../');   $relative_dirname = $this->relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($txtfile_id ) ) {    if($this->moudle == 'dresult') {      return "window.open".$matches[1].$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/readfile/$txtfile_id?pid=".$this->projectid.$matches[2].','.$other.$matches[4];    } else {     return "window.open".$matches[1].$matches[2].$this->CI->config->item("base_url")."cdms/".$this->moudle."/txtfile/$txtfile_id?pid=".$this->projectid.$matches[2].','.$other.$matches[4];    }   } else {    return "window.open".$matches[1].$matches[2].$matches[3].$matches[4];   }  }  private function css_replace( $matches ) {   if(count($matches) relative_dirname;   for($i=0; $iCI->model->get_id_by_path_and_project($relativepath,$this->projectid);   //输出   if( !empty($image_id) ) {    if($this->moudle == 'dresult') {     return "background".$matches[1]."url".$matches[2].$matches[3].$this->CI->config->item("base_url")."cdms/".$this->moudle."/readpic/$image_id?pid=".$this->projectid .$matches[3]. $matches[5];    } else {     return "background".$matches[1]."url".$matches[<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>2].$matches[3].$this->CI->config->item("base_url")."cdms/".$this->moudle."/picfile/$image_id?pid=".$this->projectid .$matches[3]. $matches[5];    }   } else {    return "background".$matches[1]."url".$matches[2].$matches[3].$matches[4].$matches[3].$matches[5];   }  } }/* End of Myreplace.php *//* Location: /application/libraries/Myreplace.php */

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php正则替换处理HTML页面的方法_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址