首页 > 编程知识 正文

php查错器,php错误处理

时间:2023-12-27 22:26:31 阅读:324427 作者:GLLQ

本文目录一览:

Atom编辑器如何自动检查PHP的语法错误

linter-php插件

安装这3个:linter、linter-ui-default、linter-php

安装之后,在linter-php插件设置里指定你的php.exe文件位置。

在你语法出错的时候,前面会有一个红点

使用PHP程序检查PHP文件是否有语法错误

在网上找了一下。刚开始以为 token_get_all()函数能处理语法错误的问题,结果发现,它只是做简单的词法分析。没有办法。后来到论坛上去问了一下

之前在当当的时候的一个项目中用到了一个简单的模板引擎,其实也是借鉴discuz来做的模板引擎,很简单,它所作的事情就是把一些自定义的标签编译成php代码。已经说了很简单了,所以编译的时候也名优进行模板语法的检查,那么在开发过程中就会出现编译出来的php文件有语法问题,有语法问题没有关系,我修改重新编译一下就好了。首先不能在每次请求的时候都把php模板重新编译一下,会严重影响性能,折中的处理时在每个编译好的php文件末尾检查一下该模板文件是否已经修改过,根据设定的更新频率,如果又需要则重新编译模板文件,现在的问题是编译出来的php文件自己有语法错误,根本执行不到模板检查那一步,所以即使修改了模板文件中的问题也不会重新编译。 所以我想寻找一种简单的方法来检查生成的php文件是否合法。不合法就重新编译,这样开发过程中就不用出现错误就得手动删除缓存文件了。

在网上找了一下。刚开始以为 token_get_all()函数能处理语法错误的问题,结果发现,它只是做简单的词法分析。没有办法。后来到论坛上去问了一下

有人告诉我有这样一个函数 php_check_syntax() 我想问题就这么坚决了。。我真应该rtf(read the fuck mannual). 仔细一看。这个函数已近被弃用了:

note: for technical reasons, this function is deprecated and removed from php. instead, use php -l somefile.php from the commandline.

这个technical reason 到底是什么呢? 先不管了,以后再慢慢研究,反正不能使用这个方法就对了。

他们的建议是使用命令行$php -l filename.php 来检查语法。

gary every给了我一个代码片段参考:

在命令行下检查问题也不大。如果我要放在在线应用呢? 这就涉及到可移植性的问题了。首先是操作系统,然后就是环境变量。这样的话就会依赖于服务器端的配置。在 上有人贴出了自己的php_check_syntax()函数实现。

有的采用的就是上面的命令行的方法。

后面有提到使用eval的方法来验证。eval方法会执行传入的代码, 如果代码有语法错误则会抛出parser error, 可以使用'@'错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:

$func = ‘eval'

$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。

eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。

checker.php

if(!function_exists('php_check_syntax')) {

function php_check_syntax($file_name, $error_message = null) {

$file_content = file_get_contents($file_name);

$check_code = "return true; ?";

$file_content = $check_code . $file_content . "?php ";

if(!@eval($file_content)) {

$error_message = "file: " . realpath($file_name) . " have syntax error";

return false;

}

return true;

}

}

if(!php_check_syntax("file.php", $msg)) {

echo $msg;

}

else {

echo "woohoo, ok!";

}

file.php

?php

foreach:: a = b

?

因为parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。

sumlime text 2 怎么自动检查php语法错误

sumlime text 2要实现自动检查php语法错误需要安装 sublimelinter 和 sublimelinter-php 两个插件。

1、配置SublimeLinter

打开 SublimeLinter 的配置文件,Preferences-Package Settings-SublimeLinter-Settings - User,进行如下配置 1. 运行模式:"sublimelinter": "save-only",

SublimeLinter 的运行模式,总共有四种,含义分别如下:

true - 在用户输入时在后台进行即时校验;

false - 只有在初始化的时候才进行校验;

"load-save" - 当文件加载和保存的时候进行校验;

"save-only" - 当文件被保存的时候进行校验;

推荐设置为 “save-only”,这样只在编写完代码,保存的时候才校验,Sublime Text 运行会更加流畅。

校验引擎

"sublimelinter_executable_map":

   {

       "php": "C:\xampp\php\php.exe"  // windows下要使用\

   }

2、检查方法:

在PHP中检查PHP文件是否有语法错误的方法

PHP中try{}catch{}语句,任何调用 可能抛出异常的方法的代码都可以使用try语句。Catch语句用来处理可能抛出的异常。.另外检测PHP语法一般编辑器都已经有语法检测功能,比如

Zend Studio(PHP集成开发环境),也自带调试功能

PHPstorm 错误检查怎样设置较好

PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能。Phpstrom的一款名为Magicento的插件对快速创建Magento插件十分有用。

常用快捷键

设置快捷键:File - Settings - IDE Settings - Keymap - 选择“eclipse” - 然后“Copy”一份 - 再个性化设置(自己习惯的)快捷键

常用快捷键(keymaps:Default情况下)

Esc键编辑器(从工具窗口)

F1 帮助 千万别按,很卡!

F2(Shift+F2) 下/上高亮错误或警告快速定位

F3 向下查找关键字出现位置

F4 查找变量来源

F5 复制文件/文件夹

F6 移动

F11 切换书签

F12 返回到以前的工具窗口

注意:部分快捷键,必须在没有更改快捷键的情况下才可以使用

查询快捷键

CTRL+N 查找类

CTRL+SHIFT+N 查找文件,打开工程中的文件(类似于eclipse中的ctrl+shift+R),目的是打开当前工程下任意目录的文件

CTRL+SHIFT+ALT+N 查 找类中的方法或变量(JS)

CIRL+B 找变量的来源,跳到变量申明处

CTRL+ALT+B 找所有的子类

CTRL+SHIFT+B 找变量的 类

CTRL+G 定位行,跳转行

CTRL+F 在当前窗口查找文本

CTRL+SHIFT+F 在指定路径查找文本

CTRL+R 当前窗口替换文本

CTRL+SHIFT+R 在指定路径替换文本

ALT+SHIFT+C 查找修改的文件,最近变更历史

CTRL+E 最近打开的文件

F3 查找下一个

SHIFT+F3 查找上一个

F4 查找变量来源

CTRL+ALT+F7 选 中的字符 查找工程出现的地方

ALT+F7 直接查询选中的字符

Ctrl+F7 文件中查询选中字符

自动代码

ALT+回车 导入包,自动修正

CTRL+ALT+L 格式化代码

CTRL+ALT+I 自动缩进

CTRL+ALT+O 优化导入的类和包

CTRL+E 最近更改的文件/代码

CTRL+SHIFT+SPACE 切换窗口

CTRL+SPACE空格 代码自动完成,代码提示,一般与输入法冲突

CTRL+ALT+SPACE 类 名或接口名提示(与系统冲突)

CTRL+P 方法参数提示,显示默认参数

CTRL+J 自动代码提示,自动补全

CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里

ALT+INSERT 生成代码(如GET,SET方法,构造函数等)

复制快捷方式

F5 复制文件/文件夹

CTRL+C 复制

CTRL+V 粘贴

CTRL+X 剪 切,删除行

CTRL+D 复制行

Ctrl + Y 删除行插入符号

CTRL+SHIFT+V 可以复制多个文本

高亮

CTRL+F 选中的文字,高亮显示 上下跳到下一个或者上一个

F2(Shift+F2) 高亮错误或警告快速定位

SHIFT+F2 高亮错误或警告快速定位

CTRL+SHIFT+F7 高亮显示多个关键字.

本地历史VCS/SVN

Alt +反引号(') 快速弹出VCS菜单

Ctrl + K 提交项目VCS

Ctrl + T 更新项目从VCS

Alt + Shift + C 查看最近发生的变化

其他快捷方式

CTRL+Z 倒退(代码后悔)

CTRL+SHIFT+Z 向前

CTRL+H 显 示类结构图

Ctrl +F12 文件结构弹出

Ctrl+Shift+H 方法的层次结构

Ctrl+Alt+H 呼叫层次

CTRL+Q 显示代码注释

CTRL+W 选中代码,连续按会 有其他效果

Ctrl+Shift+W 减少当前选择到以前的状态

CTRL+B 转到声明,快速打开光标处的类或方法说明注释(CTRL + 鼠标单击 也可以)

CTRL+O 魔术方法

CTRL+/ 注释//取消注释

CTRL+SHIFT+/ 注释/*...*/

CTRL+ [] 光标移动到 {}[]开头或结尾位置

CTRL+SHIFT+[] 选中块代码,可以快速复制

ctrl + '-/+': 可以折叠项目中的任何代码块,包括htm中的任意nodetype=3的元素,function,或对象直接量等等。它不是选中折叠,而是自动识别折叠。

ctrl + '.': 折叠选中的代码的代码

Ctrl+Shift+U 选中的字符大小写转换

ctrl+shift+i 快速查看变量或方法定义源

CTRL+ALT+F12 资源管理器打开文件夹,跳转至当前文件在磁盘上的位置

ALT+F1 选择当前文件或菜单中的任何视图工具栏

SHIFT+ALT+INSERT 竖编辑模式

CTRL+ALT ←/→ 返回上次编辑的位置

ALT+ ←/→ 切换代码视图,标签切换

ALT+ ↑/↓ 在方法间快速移动定位

alt + '7': 显示当前的类/函数结构。类似于eclipse中的outline的效果。试验了一下,要比aptana的给力一些,但还是不能完全显示prototype下面的方法名。

SHIFT+F6 重命名,重构 当前区域内变量重命名/重构

不但可以重命名文件名,而且可以命名函数名,函数名可以搜索引用的文件,还可以重命名局部变量。还可以重命名标签名。在sublime text中有个类似的快捷键:ctrl+shift+d。

ctrl+shift+enter(智能完善代码 如 if())

ctrl+shift+up/down(移动行、合并选中行,代码选中区域 向上/下移动)

CTRL+UP/DOWN 光标跳转到编辑器显示区第一行或最后一行下

ESC 光标返回编辑框

SHIFT+ESC 光 标返回编辑框,关闭无用的窗口

CTRL+F4 关闭当前的编辑器或选项卡

Ctrl + Alt + V引入变量

Ctrl + Alt + F 类似引入变量

Ctrl + Alt + C引入常量

Ctrl + Tab 键切换选项卡和工具窗口

Ctrl + Shift + A 查找快捷键

Alt + #[0-9] 打开相应的工具窗口

Ctrl + Shift + F12 切换最大化编辑器

Alt + Shift + F 添加到收藏夹

Alt + Shift + I 检查当前文件与当前的配置文件

Ctrl +反引号(`) 快速切换目前的配色/代码方案/快捷键方案/界面方案

Ctrl + Alt + S 打开设置对话框(与QQ冲突)

运行

Alt + Shift + F10 选择的配置和运行

Alt + Shift + F9 选择配置和调试

Shift + F10 运行

Shift + F9调试

Ctrl + Shift + F10运行范围内配置编辑器

Ctrl + Shift + X运行命令行

调试

F8步过

F7步入

Shift + F7智能进入

Shift + F8步骤

ALT + F9运行到光标

Alt + F8计算表达式

F9恢复程序

Ctrl + F8切换断点

Ctrl + Shift + F8查看断点

导航

Shift + Esc键隐藏活动或最后一个激活的窗口

Ctrl + Shift + F4关闭活动运行/消息/ / ...选项卡

Ctrl + Shift + Backspace键导航到最后编辑的位置

Ctrl + Alt+B 到实施(S)

Ctrl + Shift+I 打开快速定义查询

Ctrl + U 转到super-method/super-class

Alt + Home 组合显示导航栏

书签

Ctrl + F11切换书签助记符

Ctrl +#[0-9]转到编号书签

Shift + F11显示书签

编辑

Ctrl + Q 快速文档查询

ALT + INSERT 生成的代码...器(getter,setter方法,构造函数)

Ctrl + O 覆盖方法

Ctrl + I 实现方法

Alt + Enter 显示意图的行动和快速修复

Shift + Tab 键缩进/取消缩进选中的行

Ctrl + Shift + J 智能线连接(仅适用于HTML和JavaScript)

Ctrl + Enter 智能线分割(HTML和JavaScript)

Shift + Enter 开始新的生产线

Ctrl + Delete 删除字(word)

Ctrl + Backspace删除字开始

Ctrl +小键盘+ / - 展开/折叠代码块

Ctrl + Shift +小键盘+展开全部

Ctrl + Shift +数字键盘关闭全部

PHP中都有哪几种查错方法?

1、语法检查--php配置文件里,把错误显示选项都打开或者代码开始部分,加error_reporting(E_ALL)

2、逻辑检查--设置断点,在断点前写日志 error_logs($message);exit();

3、HTTP调试--用抓包工具或者firebugs工具跟踪代码运行的全过程

以上差不多就够了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。