好吧,我下面的代码一次创建所有文件,而不是通过1,然后是2,然后是3,然后是4,那么
$i = 0;
while($i < $pages)
{
$met = $this->articles();
$myFile = trim($met.".php");
$fh = fopen($myFile, 'w') or die("Can't create files.");
$stringData = "<html><head><meta name=\"description\" content=\"" . $met. "\" />
<meta name=\"keywords\" content=\"" . $met . "\" /><h1>" . $met . "</h1>
<base href='http://gumpic.com/'>".$this->show_web("http://gumpic.com")."</html>";
fwrite($fh, $stringData);
fclose($fh);
$i++;
}
echo "We've created your " . $pages . " pages.";
如何通过加载页面,在页面上打印哪些页面已完成?等;
另外,无论如何我可以加速这个剧本。它非常慢,只在大约3分钟内创建2k文件,然后给我一个内部错误。
答案 0 :(得分:0)
此脚本的速度主要取决于硬盘速度。 OS还处理打开和写入访问的程度。
如果您希望显示进度,只需在echo("Processing ".$i."\n");
循环中包含while
,并使用flush()
刷新缓冲区。确保在脚本开始时发送echo str_repeat(" ", 1024), "\n";
以强制浏览器显示内容而无需等待大量数据。
使用set_time_limit()
为脚本提供更多处理时间。
答案 1 :(得分:0)
考虑使用一些模板语言,因为每次分配和链接输出肯定会有糟糕的性能。
一些好的图书馆将是:
考虑编写一个命令行工具,如果你还没有这样做 - 回显到控制台将比写入屏幕更快。
答案 2 :(得分:0)
ob_start();
$i = 0;
while($i < $pages)
{
$met = $this->articles();
$myFile = trim($met.".php");
$fh = fopen($myFile, 'w') or die("Can't create files.");
$stringData = '<html>
<head>
<meta name="description" content="' . $met. '" />
<meta name="keywords" content="' . $met . '" />
</head>
<body>
<h1>"' . $met . '"</h1>
<base href="http://gumpic.com/">'.$this->show_web("http://gumpic.com").'</body>
</html>';
fwrite($fh, $stringData);
fclose($fh);
echo 'Created page ' . ($i+1) . '<br/>';
flush();
ob_flush();
$i++;
}
echo "Done generating " . $i . "pages.";