警告:第49行中的filemtime():stat失败

时间:2018-02-22 17:57:45

标签: php stat filemtime

我正在尝试修复这部分代码,因为我收到这样的错误:

  

警告:/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; }

我认为这与路径有关。

1 个答案:

答案 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变量传入),因此需要更多细节来确定文件传递的原因。