html - 用php或者laravel怎么切割一个文件?
本文介绍了html - 用php或者laravel怎么切割一个文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
用php或者laravel怎么切割一个文件?
比如,有个location.blade.php
<div class="card-block">
<div class="row">
<div class="col-1">北京</div>
<div class="col-11">
<a href="#" class="card-link">东城</a>
<a href="#" class="card-link">西城</a>
<a href="#" class="card-link">朝阳</a>
<a href="#" class="card-link">海淀</a>
</div>
</div>
</div>
<div class="card-block">
<div class="row">
<div class="col-1">上海</div>
<div class="col-11">
<a href="#" class="card-link">黄浦</a>
<a href="#" class="card-link">卢湾</a>
<a href="#" class="card-link">徐汇</a>
<a href="#" class="card-link">长宁</a>
</div>
</div>
</div>
<div class="card-block">
<div class="row">
<div class="col-1">天津</div>
<div class="col-11">
<a href="#" class="card-link">和平</a>
<a href="#" class="card-link">河东</a>
<a href="#" class="card-link">河西</a>
<a href="#" class="card-link">南开</a>
</div>
</div>
</div>
我想写个脚本,把它切割成三个文件:
beijing.blade.php
<div class="card-block">
<div class="row">
<div class="col-1">北京</div>
<div class="col-11">
<a href="#" class="card-link">东城</a>
<a href="#" class="card-link">西城</a>
<a href="#" class="card-link">朝阳</a>
<a href="#" class="card-link">海淀</a>
</div>
</div>
</div>
shanghai.blade.php
<div class="card-block">
<div class="row">
<div class="col-1">上海</div>
<div class="col-11">
<a href="#" class="card-link">黄浦</a>
<a href="#" class="card-link">卢湾</a>
<a href="#" class="card-link">徐汇</a>
<a href="#" class="card-link">长宁</a>
</div>
</div>
</div>
tianjin.blade.php
<div class="card-block">
<div class="row">
<div class="col-1">天津</div>
<div class="col-11">
<a href="#" class="card-link">和平</a>
<a href="#" class="card-link">河东</a>
<a href="#" class="card-link">河西</a>
<a href="#" class="card-link">南开</a>
</div>
</div>
</div>
需要怎么做?请大神帮说一下。
解决方案
<?php
/**
* segmentfault: https://segmentfault.com/q/1010000010569991
*
* @language php
* @uses SplFileObject
* @version 1.0
* @author Pu Shaowei
*/
define('DIR', __DIR__ . DIRECTORY_SEPARATOR);
FileSplit(DIR . 'location.blade.php');
function FileSplit($filePath)
{
header('Content-Type:text/html; charset=UTF-8');
$file = new \SplFileObject($filePath, 'r+');
$fileInfo = null;
while (!$file->eof()) {
$fileInfo .= $file->current();
$file->next();
}
$Simple = array_filter(explode('<div class="card-block">', $fileInfo));
$tempArray = array_map(function ($val) {
return '<div class="card-block">' . $val;
}, $Simple);
// corresponding
$corresponding = [
'北京' => 'beijing.blade.php',
'上海' => 'shanghai.blade.php',
'天津' => 'tianjin.blade.php'
];
//each
foreach ($tempArray as $value) {
foreach ($corresponding as $_key => $_value) {
if (!strpos($_key, $value)) {
$file = null;
$file = new \SplFileObject(DIR . $_value, 'w+');
$file->fwrite(mb_convert_encoding($value,'HTML-ENTITIES',"UTF-8"));
}
}
}
//off file object
$file = null;
}
这篇关于html - 用php或者laravel怎么切割一个文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文