Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php文件存在问题-1000';大量的文件_Php_Validation_File - Fatal编程技术网

php文件存在问题-1000';大量的文件

php文件存在问题-1000';大量的文件,php,validation,file,Php,Validation,File,我有一个包含1000多个子文件夹的文件夹。在每个子文件夹中有1-800个图像,外加一个具有相同数量的较小版本的thumbs文件夹。总共有18000张照片和18000个拇指 我创建了一个脚本,偶尔运行以检查是否所有内容都存在(所有路径、文件夹和照片名称都存储在数据库中) 使用file\u exist()或is\u file(),再加上clearstatcache(),我对我的数据库记录运行一个循环,以检查一切是否正常 为了检查脚本是否实际工作,我在表结构中包含了一个检查字段: photo\u当前,

我有一个包含1000多个子文件夹的文件夹。在每个子文件夹中有1-800个图像,外加一个具有相同数量的较小版本的thumbs文件夹。总共有18000张照片和18000个拇指

我创建了一个脚本,偶尔运行以检查是否所有内容都存在(所有路径、文件夹和照片名称都存储在数据库中)

使用
file\u exist()
is\u file()
,再加上
clearstatcache()
,我对我的数据库记录运行一个循环,以检查一切是否正常

为了检查脚本是否实际工作,我在表结构中包含了一个检查字段:

photo\u当前,设置(Y,N)

每次运行脚本时,每个经过验证的照片都会将
photo\u present
标志设置为
Y

在仅记录300-800条记录之后,脚本给出一个内部服务器错误500

我检查了我的表格,我知道脚本已经运行了一段时间,因为我看到
photo\u present
字段设置为
Y


我的问题是如何优化它,使
file\u exist()
is\u file()
将继续工作,直到检查完所有文件为止?

如何运行脚本?如果是通过点击网页,可能是您的服务器将脚本的运行时间限制在30秒左右,并在30秒后杀死PHP,从而导致内部服务器错误。如果它是通过cron运行的,也可能是这样,但可能性较小。

如何运行脚本?如果是通过点击网页,可能是您的服务器将脚本的运行时间限制在30秒左右,并在30秒后杀死PHP,从而导致内部服务器错误。如果它是通过cron运行的,也可能是这样,但可能性较小。

您确定这不是脚本超时吗?检查

我自己认为在浏览文件夹和文件时,GLUB是一个很好的选择,你也许能找到一些东西。

<?php
//get all image files 
$files = glob("{*.jpg,*.JPG,*.gif,*.GIF,*.png,*.PNG,*.cr2,*.CR2,*.DNG,*.dng}", GLOB_BRACE);

//print each file name
foreach($files as $file)
{
    //Do your db validation here.
    //echo "<a href=\"$file\" style=\"display:block;\">$file</a>";
}
?>

您确定这不是脚本超时吗?检查

我自己认为在浏览文件夹和文件时,GLUB是一个很好的选择,你也许能找到一些东西。

<?php
//get all image files 
$files = glob("{*.jpg,*.JPG,*.gif,*.GIF,*.png,*.PNG,*.cr2,*.CR2,*.DNG,*.dng}", GLOB_BRACE);

//print each file name
foreach($files as $file)
{
    //Do your db validation here.
    //echo "<a href=\"$file\" style=\"display:block;\">$file</a>";
}
?>


您有权访问服务器的错误日志吗?查找500错误的确切原因。是的-我扫描了错误日志,除了20-25个jpg文件丢失之外,没有发现任何严重的错误。我只能假设内部服务器500错误是指在观察脚本行为后发生的脚本超时。您有权访问服务器的错误日志吗?查找500错误的确切原因。是的-我扫描了错误日志,除了20-25个jpg文件丢失之外,没有发现任何严重的错误。我只能假设内部服务器500错误是指在观察脚本的行为后发生的脚本超时。实际上,我是通过点击网页来使用它的。还有其他建议吗?我不能设置一个cron@andrew:加快脚本速度,请与主机提供商联系以增加超时或切换到支持cronjobs的主机。您应该尝试设置时间限制(600);这将使脚本运行10分钟(如果您的主机允许您修改运行时环境的这一部分)Matt,我尝试将其设置为600、300甚至0以获得无限,但过了一段时间后,在脚本停止执行之前,我仍然收到该错误。现在我正在搜索一些东西来模拟crontab,因为我没有直接访问权限,实际上我是通过点击网页来使用它的。还有其他建议吗?我不能设置一个cron@andrew:加快脚本速度,请与主机提供商联系以增加超时或切换到支持cronjobs的主机。您应该尝试设置时间限制(600);这将使脚本运行10分钟(如果您的主机允许您修改运行时环境的这一部分)Matt,我尝试将其设置为600、300甚至0以获得无限,但过了一段时间后,在脚本停止执行之前,我仍然收到该错误。现在我正在搜索一些东西来模拟crontab,因为我没有直接访问权限。我尝试设置时间限制(600),甚至300和0 ans仍然不好。此外,我只使用jpg文件,因此您的代码的其余部分对我的场景没有任何用处(我认为),我尝试设置时间限制(600),甚至300和0 ans仍然不好。此外,我只使用jpg文件,因此您的代码的其余部分对我的场景没有任何用处(我认为)