>  기사  >  백엔드 개발  >  php如何对文件做处理,并提取内容生成文件?

php如何对文件做处理,并提取内容生成文件?

WBOY
WBOY원래의
2016-06-23 14:26:13981검색

php生成文件 php

这是一个原html文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div><div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div><div class="footer"></div></body></html>



这是一个被处理过的html文件


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!-- Start --><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div><!-- End --><!-- Start --><div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div><!-- End --><!-- Start --><div class="footer"></div></body></html><!-- End -->




然后提取内容片段,生成分别生成以下三个文件、


提取这个部分,生成 head.html

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




无标题文档








提取这个部分,生成 index.html

















提取这个部分,生成 foot.html








回复讨论(解决方案)

$s =<<< HTML<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!-- Start --><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div><!-- End -->  <!-- Start --><div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div><!-- End -->  <!-- Start --><div class="footer"></div></body></html><!-- End -->HTML;preg_match_all('/.*?<!-- End -->/is', $s, $r);print_r($r[0]);
得到
Array(    [0] => <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!-- Start --><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div><!-- End -->    [1] =>   <!-- Start --><div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div><!-- End -->    [2] =>   <!-- Start --><div class="footer"></div></body></html><!-- End -->)

写到文件
$fn = array('head.html', ' index.html', 'foot.html');foreach($r[0] as $i=>$s)  file_put_contents($fn[$i], $s);

$s =<<< HTML<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div> <div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div> <div class="footer"></div></body></html>HTML;$ar = preg_split("/(<!.+?>\s+|\r?\n\s\r?\n)/s", $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);$d = array(PHP_EOL.'<!-- End -->', '<!-- Start -->'.PHP_EOL);foreach($ar as $i=>$v) {  if($i) echo $d[$i%2];  echo $v;}echo $d[0];
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!-- Start --><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><div class="header"></div><!-- End --> <!-- Start --><div class="warp"><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div><!-- End --> <!-- Start --><div class="footer"></div></body></html><!-- End -->

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.