Два дня сидел и вносил изменения в скрипты PHP отвечающие за поддержку ajax на сайте. Так как эти скрипты выполняются в фоновых запросах, то ошибки в синтаксисе сразу и не увидишь, а проверять каждый скрипт в отдельности слишком долго.
В результате, для упрощения поиска синтаксических ошибок в большом количестве файлов появился следующий скрипт:
Принцип действия прост, кладем скрипт на хостинг, в переменной $dir указываем путь к нашей директории со скриптами и вызываем скрипт через браузер. В полученном ответе выискиваем строчки с bool(false) и работаем уже непосредственно с файлом, в котором есть синтаксическая ошибка.
Маленьких скрипт, но упрощающий жизнь.
В результате, для упрощения поиска синтаксических ошибок в большом количестве файлов появился следующий скрипт:
<?php
function check_syntax_file($filename) {
return @eval('return true; ?>' . file_get_contents($filename));
}
$dir = "/my_dir/"; //задаём имя директории
if(is_dir($dir)) { //проверяем наличие директории
echo $dir.' - директория существует;<br>';
$files = scandir($dir); //сканируем (получаем массив файлов)
array_shift($files); // удаляем из массива '.'
array_shift($files); // удаляем из массива '..'
# Проверяем все файлы директории и выводим результат
for($i=0; $i<sizeof($files); $i++){
echo('<br>filename: '.$files[$i].' - ');
var_dump( check_syntax_file($dir.$files[$i]) );
echo('<br>');
}
}
else echo $dir.' -такой директории нет;<br>';
?>
Принцип действия прост, кладем скрипт на хостинг, в переменной $dir указываем путь к нашей директории со скриптами и вызываем скрипт через браузер. В полученном ответе выискиваем строчки с bool(false) и работаем уже непосредственно с файлом, в котором есть синтаксическая ошибка.
Маленьких скрипт, но упрощающий жизнь.