Javascript PHP每隔几秒钟刷新一次会产生一个内部错误
代码应该从特定文件夹及其子文件夹中选择一个随机图像并显示它。每隔几秒钟它就会选择另一个 代码可以工作,但是在3到4个小时后,我想它会使服务器过载,因为它产生了一个内部错误。只有当我将脚本从我的站点中排除时,500才会消失 HTML/JavaScriptJavascript PHP每隔几秒钟刷新一次会产生一个内部错误,javascript,php,Javascript,Php,代码应该从特定文件夹及其子文件夹中选择一个随机图像并显示它。每隔几秒钟它就会选择另一个 代码可以工作,但是在3到4个小时后,我想它会使服务器过载,因为它产生了一个内部错误。只有当我将脚本从我的站点中排除时,500才会消失 HTML/JavaScript <div id="auto_load"></div> <script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"
<div id="auto_load"></div>
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(function() { startRefresh(); });
function startRefresh() {
setTimeout(startRefresh,5000);
$.get('img-data.php', function(data) {
$('#auto_load').html(data); }); }
</script>
$(函数(){startRefresh();});
函数startRefresh(){
设置超时(startRefresh,5000);
$.get('img-data.php',函数(数据){
$(“#自动加载”).html(数据);}
img-data.php
<?php
function getFiles($dir)
{
static $files;
$allowed_file_extensions = array();
$allowed_file_extensions[] = 'gif';
$allowed_file_extensions[] = 'bmp';
$allowed_file_extensions[] = 'jpg';
$allowed_file_extensions[] = 'jpeg';
$allowed_file_extensions[] = 'png';
$len = strlen($dir);
if($dir{$len-1} == '/')
$dir = substr($dir, 0, $len-1);
if(!is_dir($dir))
return false;
$open = @opendir($dir);
if(!$open)
return false;
while($file = readdir($open)) {
if($file == "." || $file == "..")
continue;
if(is_dir($dir.'/'.$file)) {
getFiles($dir.'/'.$file);
}
$e = explode('.', $file);
$ext = $e[ count($e)-1 ];
if(strpos($file,'320'))
if( is_file($dir.'/'.$file) && in_array($ext, $allowed_file_extensions) ) {
$files[] = $dir.'/'.$file;
}
}
return $files;
}
$files = getFiles('<FOLDER>');
$rand = mt_rand(0, count($files)-1);
echo '<img src="<WEBSITE>'. $files[ $rand ] .'" max-width="100%" height="auto" />';
?>
有什么建议吗?手动输入图片并通过javascript进行处理是不可取的,因为文件夹中有600-700张图片。是Ajax还是后续的
产生了500条响应?一旦发生,从那时起它是否总是发生,或者它是一个间歇性的问题可能是您输入的文件夹中还没有任何图像?“if(!$open)return false;”行看起来可疑,如果为true,则不受保护……代码正常工作3-4小时。它确实会显示一张图片(从充满图片的文件夹中),并每5秒更改一次。3-4小时后,服务器上所有php脚本都出现500个内部错误。也许我的海报阻止他的服务器使用耗电脚本?我是说hoster,而不是poster^^500错误总是意味着您应该查看web服务器的错误日志。确保错误报告一直向上-在脚本顶部error\u reporting(E\u all)
通常我建议也使用display\u errors
,但在ajax脚本中很难使用。错误日志应包含完整的详细信息。这可能是一个逻辑问题,读取数组末尾或类似的内容。