Как проверить синтаксис файлового кода PHP в PHP? - PullRequest
2 голосов
/ 20 апреля 2010

Мне нужно запустить PHP-парсер для PHP-кода внутри PHP. Я на Windows, и я попытался

system("C:\\Program Files (x86)\\PHP\\php.exe -l \"C:/Program Files (x86)/Apache/htdocs/a.php\"", $output);
var_dump($output);

без удачи. Параметр -l должен проверять правильный синтаксис PHP и выдавать ошибки, если существуют некоторые проблемы В принципе, я хочу сделать что-то похожее на эту картинку:

альтернативный текст http://www.mpsoftware.dk/images/phpdesigner7/phpdesigner7-php-syntaxerror.png

То есть, чтобы иметь возможность обнаруживать ошибки в коде.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2010

Это похоже на работу:

<?php

$file = dirname(__FILE__) . '/test.php';

//$output will be filled with output from the command
//$ret will be the return code
exec('php -l ' . escapeshellarg($file), $output, $ret);

//return code should be zero if it was ok
if ($ret != 0) {
    echo 'error:';
    var_dump($output);
} else {
    echo 'ok';   
}
1 голос
/ 20 апреля 2010

Расширение runkit предоставляет функцию для этого:

runkit_lint_file ()

Если вы не можете использовать runkit, тогда вы можете сделать то, что уже пробовали:

echo passthru("php -l ".__FILE__);

Попробуйте исправить свой путь с помощью realpath () , если он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...