PHP ob_flush();它';It’没有潮红

PHP ob_flush();它';It’没有潮红,php,Php,我正在尝试编写一个脚本,它将基于10个模板创建10个文件(每个文件一个模板) 这是我的代码: $lines = file("files/templist.txt"); $template = "files/templates/template.txt"; $template2 = "files/templates/template2.txt"; $template3 = "files/templates/template3.txt"; $template4 = "files/templates/

我正在尝试编写一个脚本,它将基于10个模板创建10个文件(每个文件一个模板)

这是我的代码:

$lines = file("files/templist.txt");
$template = "files/templates/template.txt";
$template2 = "files/templates/template2.txt";
$template3 = "files/templates/template3.txt";
$template4 = "files/templates/template4.txt";
$template5 = "files/templates/template5.txt";
$template6 = "files/templates/template6.txt";
$template7 = "files/templates/template7.txt";
$template8 = "files/templates/template8.txt";
$template9 = "files/templates/template9.txt";
$template10 = "files/templates/template10.txt";

ob_start();
include_once($template);
$file_output = ob_get_clean();
file_put_contents('files/'.$lines[0].'', $file_output);
ob_flush()

if (empty($lines[1])) {
} else {
ob_start();
include_once($template2);
$file_output2 = ob_get_clean();
file_put_contents('files/'.$lines[1].'', $file_output2);
ob_flush()
}

if (empty($lines[2])) {
} else {
ob_start();
include_once($template3);
$file_output3 = ob_get_clean();
file_put_contents('files/'.$lines[2].'', $file_output3);
ob_flush()
}

if (empty($lines[3])) {
} else {
ob_start();
include_once($template4);
$file_output4 = ob_get_clean();
file_put_contents('files/'.$lines[3].'', $file_output4);
ob_flush()
}

if (empty($lines[4])) {
} else {
ob_start();
include_once($template5);
$file_output5 = ob_get_clean();
file_put_contents('files/'.$lines[4].'', $file_output5);
ob_flush()
}

if (empty($lines[5])) {
} else {
ob_start();
include_once($template6);
$file_output6 = ob_get_clean();
file_put_contents('files/'.$lines[5].'', $file_output6);
ob_flush()
}

if (empty($lines[6])) {
} else {
ob_start();
include_once($template7);
$file_output7 = ob_get_clean();
file_put_contents('files/'.$lines[6].'', $file_output7);
ob_flush()
}

if (empty($lines[7])) {
} else {
ob_start();
include_once($template8);
$file_output8 = ob_get_clean();
file_put_contents('files/'.$lines[7].'', $file_output8);
ob_flush()
}

if (empty($lines[8])) {
} else {
ob_start();
include_once($template9);
$file_output9 = ob_get_clean();
file_put_contents('files/'.$lines[8].'', $file_output9);
ob_flush()
}

if (empty($lines[9])) {
} else {
ob_start();
include_once($template10);
$file_output10 = ob_get_clean();
file_put_contents('files/'.$lines[9].'', $file_output10);
ob_flush()
}
files/templast.txt包含10行:

data1
data2
data3
data4
data5
data6
data7
data8
data9
data10
我的目标是基于模板创建10个文件,例如data1.txt、data2.txt、data3.txt(…)和data10.txt

上面的脚本只创建了一个名为data10.txt的文件,省略了data1.txt、data2.txt等。 我做错了什么?干杯!:)

可能是这样(简单)


除了这段代码乱七八糟,而且由于ob_flush()调用末尾缺少分号,其语法不正确之外,主要问题是从templast.txt文件读取的文件名末尾包含一个新行-“\n”,但该文件的最后一行data10.txt除外。在这种情况下,文件的创建可能会失败,或者您的文件管理器可能无法显示该文件

最快的修复方法是将第一行替换为:

$lines = explode("\n", file_get_contents("files/templist.txt"));

听说过数组和循环吗…?
$lines = explode("\n", file_get_contents("files/templist.txt"));

for ($i = 1; $i <= 10; $i++) {
    if (!empty($lines[$i])) {
        ob_start();
        $templatePath = 'files/templates/template.txt';
        if ($i > 1) {
            $templatePath .= $i;
        }
        $templatePath .= '.txt';

        include($templatePath);

        file_put_contents('files/' . $lines[$i], ob_get_clean());

    }
}
$lines = explode("\n", file_get_contents("files/templist.txt"));