From 61fcb3cd95360fb8511a812432ca99af579306c5 Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Tue, 11 Jan 2022 08:14:13 +0800 Subject: [PATCH] php-syntax.php --- php/php-syntax.php | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 php/php-syntax.php diff --git a/php/php-syntax.php b/php/php-syntax.php new file mode 100644 index 0000000..b22329a --- /dev/null +++ b/php/php-syntax.php @@ -0,0 +1,47 @@ +&1", $output, $exitcode); + if (count($output) > 1) { + unset($output[count($output)-1]); + } + return $output; +} + +/** + * Проверяет корректность синтаксиса php-кода через файл + * + * @param string $php_code Явный PHP-код + * @param int $exitcode Код выхода процесса php + * @return array Массив строк результата + */ +function php_syntax_text(string $php_code, int &$exitcode = 0): array { + $output = []; + $tmp_filename = 'tmp/tmp'.time(); + file_put_contents($tmp_filename, $php_code); + if (file_exists($tmp_filename)) { + $output = php_syntax_file($tmp_filename, $exitcode); + unlink($tmp_filename); + } else { + $exitcode = 255; + } + return $output; +} + +/****************** + * Использование + ******************/ + +$file = 'some/testfile.php'; // путь к файлу +echo implode("
", php_syntax_file($file)); // проверка по файлу +echo implode("
", php_syntax_text(file_get_contents($file))); // проверка по содержимому файла +echo implode("
", php_syntax_text('