❶ 在php中检查PHP文件是否有语法错误的方法
<?php
if(!function_exists('php_check_syntax')){
functionphp_check_syntax($file_name,&$error_message=null){
$file_content=file_get_contents($file_name);
$check_code="returntrue;?>";
$file_content=$check_code.$file_content."<?php";
if(!@eval($file_content)){
$error_message="file:".realpath($file_name)."havesyntaxerror";
returnfalse;
}
returntrue;
}
}
if(!php_check_syntax("file.php",$msg)){
echo$msg;
}
else{
echo"Woohoo,OK!";
}
file.php
❷ 如何查看php代码语法错误
错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:$func = ‘eval’$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问
错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:
$func = ‘eval’
$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。
eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:
< ?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!";
}
< ?PHP
foreach:: a => b
?>
因为Parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。
PHP检查语法错误最好的办法就是这个被遗弃的PHP_check_syntax这个方法回到PHP中。下次再研究下他们是出于什么原因把这个函数去掉的。
❸ 访问服务器上的PHP文件出错,如何看到具体错误信息
首先看下浏览器返回的状态码,404表示你的PHP项目中木有默认页,500表示你的PHP项目中某个文件有硬性错误,接着呢,到php.ini中开启下出错开关,就可以发现是PHP函数或变量出错还是mysql连接出错了。。。,最好放截图。
平常如果遇到问题,可以多去后盾人看一些相关的视频,看不懂多看几遍,总会有用的。
❹ 如何查看wamp中php编译的错误
查看wamp目录下的logs下的apache_error.log
❺ 服务器上的php项目访问不了,怎么查看错误
首先看下浏览器返回的状态码,404表示你的PHP项目中木有默认页,500表示你的PHP项目中某个文件有硬性错误,接着呢,到php.ini中开启下出错开关,就可以发现是PHP函数或变量出错还是mysql连接出错了。。。,最好放截图。。。
❻ PHP编写过程中如何检测错误
一般 xx_query 函数执行的 sql 语句是 query 语句, insert, del, update这类使用 xx_exec()函数。函数一般都有返回值来表明是否成功,所以把函数返回值赋值给变量,然后判断函数返回值,如果成功再进行成功的操作,否则执行失败的操作。使用 var_mp($var) 打印返回值,即可查看函数的返回值
❼ 如何查看服务器上的php错误日志
切换到根目录, 输入 sudo find . -name error.log 就能返回php错误日志的路径.
❽ 如何查看php网站的错误信息和错误日志
设定错误消息级别
error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Proction Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
最好吧日志打开
log_errors
; Default Value: Off
; Development Value: On
; Proction Value: On
❾ 如何查看php-fpm core mp 文件的错误
开启php的coremp输出,修改ulimit -c就可以了,但是很多情况下,会提示权利受限,无法修改
[[email protected]]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30678
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 32768
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ ulimit -c unlimited
-bash: ulimit: core file size: cannot modify limit: Operation not permitted
解决方案:
1.检查配置
看看shell配置里有没有 ulimit -c 0 这种类似的关闭的操作,例如
$HOME/.bash_profile 或者 $HOME/.bashrc 之类的,如果有,注释掉。
#
# Do not proce core mps
#
# ulimit -c 0
2. 全局coremp开启
使用root用户,修改 /etc/security/limits.conf
# /etc/security/limits.conf
#
# Each line describes a limit for a user in the form:
#
# <domain> <type> <item> <value>
#
* soft core unlimited
3.退出并从新登录shell,修改配置
ssh [email protected]
[[email protected]]$ ulimit
-c
0
先切换成root用户进行设置
su -
ulimit -c unlimited
ulimit -c
unlimited
然后切换回自己的用户进行设置
su - fukun
ulimit -c unlimited
ulimit -c
unlimited
以上3步有可能不是必须的,但是只要按这个步骤来,肯定能设置成功,在其它方法设置不成功的时候,按这个步骤来试试把。