如果文件A.php
肯定有一些行,并且我想将A.php
中的特定行导出或复制到新文件B.php
,那么过程就像这样(在A.php
中复制x到y的行 - 创建名为B.php
的新文件 - 过去并保存B.php
)。
因此,如果我想在以下代码中提取3到8行(例如)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<?php
$fname= basename(__FILE__,'php');
?>
<title><?php echo $fname; ?></title>
</head>
<body>
<p>This is a test Page</p>
</body>
</html>
如果可以,我该如何详细说明?
答案 0 :(得分:1)
从这里的文档:
http://php.net/manual/en/function.file.php
此命令将文件拆分为一行数组:
// substitute a local file for the URL
$lines = file('http://php.net/manual/en/function.file.php');
echo $lines[0];
// <!DOCTYPE html>
echo $lines[56];
// <![endif]-->
获得所需的行后,您可以创建新文件并保存。有100种方法可以做到这一点。这是一个:
http://php.net/manual/en/function.file-put-contents.php
file_put_contents('fileInCurrentDirectory.php', $lines[3], FILE_APPEND | LOCK_EX);
file_put_contents('fileInCurrentDirectory.php', $lines[4], FILE_APPEND | LOCK_EX);
file_put_contents('fileInCurrentDirectory.php', $lines[5], FILE_APPEND | LOCK_EX);
答案 1 :(得分:1)
您可以使用file将文件转换为行数组,然后使用array_slice获取所需的行,最后file_put_contents导出到新文件。像这样:
function A2B($a,$b,$from,$to){
$f = file($a,FILE_IGNORE_NEW_LINES);
$n = array_slice($f,($from-1),($to-$from+1));
file_put_contents($b,implode("\n",$n));
}
并将其称为
A2B("a.php","b.php",3,6);