使用php-l验证语法行为和打开标记
我似乎找不到这方面的任何东西,我想知道是否有其他人遇到过这个问题,或者知道原因 我有一些PHP代码,在将其保存到数据库之前,我正在尝试验证其语法 我是红宝石的,但那没关系。我正在使用使用php-l验证语法行为和打开标记,php,ruby,io,syntax-checking,phplint,Php,Ruby,Io,Syntax Checking,Phplint,我似乎找不到这方面的任何东西,我想知道是否有其他人遇到过这个问题,或者知道原因 我有一些PHP代码,在将其保存到数据库之前,我正在尝试验证其语法 我是红宝石的,但那没关系。我正在使用php-l检查语法并清除它以保存或输出发生的任何语法错误 这是一个较新的服务器安装,所以我猜问题在于需要安装的东西或php.ini中需要调整的设置 如果php内容中有明显错误,并且以 原来这是一个简单的问题。我看到的是错误的php.ini文件 在命令行中,我执行了以下操作: php-i | grep php.ini以
php-l
检查语法并清除它以保存或输出发生的任何语法错误
这是一个较新的服务器安装,所以我猜问题在于需要安装的东西或php.ini
中需要调整的设置
如果php内容中有明显错误,并且以
原来这是一个简单的问题。我看到的是错误的php.ini
文件
在命令行中,我执行了以下操作:
php-i | grep php.ini
以确定哪个php.ini文件处于活动状态
然后,看着里面,我注意到:
short\u open\u tag
首选项设置为Off
,并且需要开
其次,当出现语法错误时,我得到了一个简单的Errors解析-
响应,这意味着我还需要在php.ini文件中打开display\u Errors
简单的问题,在我仔细考虑之后花了我5分钟,但我将把它留给下一个人。粗略的解决方法是通过
php-l-dshort\u open\u tag=on
强制我在服务器上查看错误的php.ini
文件。看起来short_open_标记已关闭,我们无论如何都不希望使用它。更改该选项并打开“显示错误…”。。。。
module PhpValidator
def validate_php
output = IO.popen("php -l", "r+") do |f|
f.puts self.content
f.close_write
f.read
end
if $? != 0
output.sub!("Errors parsing -", "")
errors.add(:content, "contains invalid PHP: #{output}")
end
end
end
before_save :validate_php
<?
echo "test";
dsfaks;fjaskl;fkas0f9qiroawlsfkasdfa;'
?>