Я пытаюсь исправить эту часть кода, так как я получаю сообщение об ошибке, подобное этому:
Предупреждение: filemtime (): сбой статистики для /var/www/vhosts/example.tk/httpdocs/manager/css/general.css в /var/www/vhosts/example.tk/httpdocs/js-and-css.inc .php на линии 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;
}
Строка 49: $time = filemtime($temp_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;
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, я не знаю ответа на этот вопрос — предоставленный вами код не дает достаточно подробных сведений о том, как список файлов is generate (передается через переменную $ arr_css), поэтому потребуется больше подробностей, чтобы выяснить, почему передается файл, который не существует.
Других решений пока нет …