Heim  >  Artikel  >  Backend-Entwicklung  >  php如何对文件做处理,并提取内容生成文件?

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

WBOY
WBOYOriginal
2016-06-23 14:26:13941Durchsuche

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 -->

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn