ホームページ  >  記事  >  バックエンド開発  >  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 -->




次に、コンテンツの断片を抽出して、次の 3 つのファイルを生成します。

これを抽出しますhead.html を生成し、 head.html

853befdc5608347a74eb910f5521e256
9a203e07ca6836ec02bfb0f4d63b8627
68ccb177a5de0ef9542dde7d35bae727
93f0f5c25f18dab9d176bd4f6de5d30e
6e16712666882781ae7b52c464c80231 b2386ffb911b14667cb8f0f91ea547a7無題ドキュメント6e916e0f7d1e588d4f442bf645aedb2f
6c04bd5ca3fcae76e30b72ad730ca86d ">16b28748ea4df4d9c2150843fecfba68
5ee966bf5b5eb67cdaa05a2360bd1188




この部分を抽出してindex.htmlを生成

e70752451c0e4a99702a95a84dfdbb73
3d48be0de13f7b467019bc40cfc4460f
dc6dce4a544fdca2df29d5ac0ea9906bdf250b2156c434f3390392d09b1c956316b28748ea4df4d9c2150843fecfba68
9bb67fc33bb5f57a8c52e1c82cea99f7


この部分を抽出し、 foot.html を生成します9a203e07ca6836ec02bfb0f4d63b8627 ffd6ba4147bda351239915f463e46e3836cc49f0c466276486e50c850b7e4956
9bb67fc33bb5f57a8c52e1c82cea99f7




ディスカッションに返信 (解決策)

$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 までご連絡ください。