我正在尝试修复这部分代码,因为我收到这样的错误:
警告:/var/www/vhosts/example.tk/httpdocs/js-and-中的/var/www/vhosts/example.tk/httpdocs/manager/css/general.css的filemtime():stat失败第49行的css.inc.php
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div id="content">
<div class="header"></div>
<nav class="nav"></nav>
<div class="div 1"></div>
<div class="div 2">
<div id="svg_1">
<object id="redObject" data="">
<!-- #DOCUMENT -->
<svg width="50" height="48" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<ellipse ry="14" rx="13" id="svg_2" cy="25" cx="25" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="0" stroke="#cd5c5c" fill="#bf2a2a"/>
</svg>
</object>
</div>
<div id="svg_2">
<object id="blueObject" data="">
<!-- #DOCUMENT -->
<svg width="50" height="50" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<ellipse ry="14" rx="13" id="svg_2" cy="25" cx="25" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="0" stroke="#c95c5c" fill="#56aaff"/>
</svg>
</object>
</div>
</div>
<div class="div 3"></div>
<div class="div 4"></div>
</div>
</body>
</html>
第49行是: function addStyleCssHtml($arr_css){
$css_files=implode('|', $arr_css);
$file_hash=sha1($css_files);
$dest_path=$_SERVER['DOCUMENT_ROOT'].'/css/static-'.$file_hash.'.css';
$recreate=!file_exists($dest_path);
if (!$recreate) {
$last_updated=filemtime($dest_path);
foreach ($arr_css as $fl){
$temp_path=(substr($fl, 0, 1)=='/')?$_SERVER['DOCUMENT_ROOT'] . $fl:realpath($fl);
if (!file_exists($temp_path)) $temp_path=$_SERVER['DOCUMENT_ROOT'].'/'.$fl;
$time = filemtime($temp_path);
if ($time > $last_updated) {
$recreate=true;
break;
}
我认为这与路径有关。
答案 0 :(得分:0)
要解决您遇到的具体问题,您需要这样做:
if (!$recreate) {
$last_updated=filemtime($dest_path);
foreach ($arr_css as $fl){
$temp_path=(substr($fl, 0, 1)=='/')?$_SERVER['DOCUMENT_ROOT'] . $fl:realpath($fl);
if (!file_exists($temp_path)) $temp_path=$_SERVER['DOCUMENT_ROOT'].'/'.$fl;
if (file_exists($temp_path)) {
$time = filemtime($temp_path);
if ($time > $last_updated) {
$recreate=true;
break;
}
}
if(file_exists($tempfile))
阻止将阻止在不存在的文件上调用filemtime()
。至于你在上面评论中关于如何在merchant / css目录而不是manager / css中获取文件的问题,我不知道答案 - 你提供的代码没有提供足够的详细信息文件列表是生成的(通过$ arr_css变量传入),因此需要更多细节来确定文件传递的原因。