我创建了一个包含大量小php文件的平面文件数据库。
每个文件都包含以下内容:
12:07:22 PM [Apache] Apache Service detected with wrong path
12:07:22 PM [Apache] Change XAMPP Apache and Control Panel settings or
12:07:22 PM [Apache] Uninstall/disable the other service manually first
12:07:22 PM [Apache] Found Path: "C:\Apache24\bin\httpd.exe" -k runservice
12:07:22 PM [Apache] Expected Path: "c:\xampp\apache\bin\httpd.exe" -k runservice
它们的名称与它们包含的$ steamid相同。在这种情况下76561198046273125.php。
我想使用cron作业来执行一个php文件,它每10分钟将$ amount变量减少10。我设法通过以下方式打开文件:
<?php
$amount = 350;
$status = 1;
$steamid = 76561198046273125;
?>
然后
$userinfo = fopen("users/76561198046273125.php") or die("Unable to open file!");
然后再次“翻转”它。
由于每个新用户都创建了一个新文件,因此我没有所有文件名的列表。
如何让脚本在整个“users”文件夹中循环,让每个文件都在这个过程中运行而不提供文件名列表?
编辑: 这样的事情可以起作用吗?
$amount = $amount - 10;
答案 0 :(得分:0)
根据我的理解,您希望对外部文件中的其中一个变量进行操作并更新其值。 Fopen会将您的文件作为简单的文本文件而不是php文件打开。为此,您必须将file_get_contents()与eval()一起使用。您获取内部变量,减少数量,再次准备所有文本并覆盖原始文件。
尝试以下几点:
foreach (glob("/your/path/to/users/folder/*.php") as $filename) {
$contents = file_get_contents($filename);
eval($contents);
$amount = $amount - 10;
$new_string = "
<?php\n
\$amount = $amount;\n
\$status = $status;\n
\$steamid = $steamid;\n
?>"
;
file_put_contents($filename, $new_string);
}
聚苯乙烯。提防eval();
的危险