热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何调试php网站,如何调试php网站

常用调试方式通过浏览器打印信息进行调试方法在代码中添加echo、var_dump、print_r和exit,在浏览器中查看输出。优缺点优点:简单

5268f80b9b1e01f982625ef6fac83ca1.png

常用调试方式

6cbeb8907dadc26683d1f82c9a8def08.png

通过浏览器打印信息进行调试

方法

在代码中添加 echo、var_dump、print_r 和 exit,在浏览器中查看输出。

优缺点

优点:

简单,使用方便,不用安装插件(推荐学习:PHP编程从入门到精通)

对于自己写的代码,或比较熟悉的框架,可以这么用

缺点:

对于多分支逻辑,需要加很多代码或尝试多次

对于不熟悉的逻辑,无法反映出完整的执行流程。

有可能将调试语句遗漏在项目中

无法单步执行

调试时,为了格式化输出变量,往往需要在项目中实现自己的 dump() 函数。利用 Composer,可以全局安装 symfony/var-dumper 包中的 dump() 函数,使所有项目都可以使用,而无需改动项目。

使用 Xdebug 进行调试

XDebug 是 C/S 结构,其中 Client 是 PHP 中安装的 Xdebug,Server 是 IDE 中安装的插件,使用 DBGP 协议通信。PHP 运行脚本时,通过 Xdebug 插件向 IDE 发送调试信息,并接收 IDE 发过来的控制信号。

需要为 PHP 安装并开启 Xdebug,然后设置 IDE 的 Xdebug 插件,使二者可以通信。

优缺点

支持单步调试和任意变量值的获取

配置复杂,需要 IDE 安装插件

支持跟浏览器的配合,需要请求中携带 XDEBUG_SESSION_START 参数

通过 console 终端进行调试(CLI 方式)

对于非 web 应用,例如定时任务或单元测试,可以直接在控制台进行调试。

PhpStorm 中通过 Alt+F12 快捷键打开命令行终端。但是因为 IDE 中只能显示一个终端,在开启调试后的调试终端会覆盖命令行终端,所以还是单独开一个命令行终端吧(Windows 下可以使用 DOS 窗口或 PowerShell)。

方法及原理

web 应用通过 GET/POST/COOKIE 参数标志调试请求,而非 web 应用则通过在命令行终端设置环境变量来开启调试。

两步:

设置环境变量 XDEBUG_CONFIG="idekey=session_name",这个 idekey 需要跟 php.ini 中 Xdebug 部分设置的 idekey 一样。

在命令行终端执行脚本。执行时会唤起 IDE 的 debug 终端,可以单步调试,输出结果实时显示在命令行终端



推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
author-avatar
Z张海男_851
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有