我创建了一个包含许多小php文件的平面文件数据库。
每个文件都包含以下内容:
<?php
$amount = 350;
$status = 1;
$steamid = 76561198046273125;
?>
它们的名字就像它们包含的$stead一样。在这种情况下,76561198046273125.php.
我想使用cron作业来执行一个php文件,该文件每10分钟将$amount变量减少10。我通过以下方式打开了一个文件:
$userinfo = fopen("users/76561198046273125.php") or die("Unable to open file!");
然后
$amount = $amount - 10;
然后再次"转发"。
由于每个新用户都会创建一个新文件,所以我没有所有文件名的列表。
如何使脚本在整个"用户"文件夹中循环,并使每个文件都在这个过程中运行,而不给出文件名列表?
编辑:这样的东西能起作用吗?
<?php
foreach (glob('users/*.php') as $userfile) {
$userinfo = fopen("$userfile") or die("Unable to open file!");
//...do some actions here...
}
?>
据我所知,您希望对外部文件中的其中一个变量进行操作并更新其值。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);
}
Ps。小心eval()的危险;