http://www.yanbin.org/commentary-on-php-chap1_1-prep/ 源码分析,首先得看源码。记事本可以看,EditPlus 也可以看,但显然具有语法着色功能的 EditPlus 要比记事本爽。更显然,M$ 的 Visual C++ 比 EditPlus 还要爽。:D 因此我推荐的第一款神兵就是 M$ Vi
http://www.yanbin.org/commentary-on-php-chap1_1-prep/
源码分析,首先得看源码。记事本可以看,EditPlus 也可以看,但显然具有语法着色功能的 EditPlus 要比记事本爽。更显然,M$ 的 Visual C++ 比 EditPlus 还要爽。:D 因此我推荐的第一款神兵就是 M$ Visual C++(Sorry, Linuxer~)。既然用了 Visual C++ 那么有一款它的插件我们不得不提:Visual Assist X,还没有她的朋友尽快拥有她吧~
OK,现在源码是可以看了,而且是很舒服地在看,但有时我们还想实地进行单步调试以一窥究竟。要调试自然得先编译。很不幸,PHP 在 Windows 环境下的编译和调试并不像想象中的那么简单。我们至少得比在 xNix 环境下多做一下几个步骤:
- 下载 PHP 使用的 DNS 解析器的源代码(http://www.php.net/extra/bindlib_w32.zip)并将其编译输出一个名为 resolv.lib 的库文件。
- 下载 win32 编译工具 http://www.php.net/extra/win32build.zip ,解压至某一目录(假定为 $work)。在 $work/lib 目录里面也有个 resolv.lib,我们把步骤 1 产生的 resolv.lib 复制到这个目录,覆盖之。
- 设置编译环境。把 $Work/bin 添加到系统 PATH 环境变量和 Visual C++ 的 Executable files 目录;把 $work/lib 添加到 Library files 目录;把 $Work/include 添加到 Include files 目录。
- 下载 PHP 源文件并解压至 $work 。
- 整理 PHP 的项目工程文件。PHP 4.x 的 VC 工程文件($PHP/win32/php4ts*.dsw)是当时一直在维护的,因此可以直接拿来就用。PHP 5.x 增加了一种新的基于命令行的类 Unix 编译系统,使得编译 PHP 更为简单。于是相应的工程文件 php5ts*.dsw 便不再被 PHP 团队维护,也不能直接使用编译 PHP 5 了。但我们恰恰不想单纯的编译,我们想的是在 Visual C++ 里面进行编译然后下断点单步调试,因此我们就需要命令行编译系统的编译流程重建这个项目工程文件(可能还需要对某些文件做些必要的改动)。
为方便大家不做重复性劳动,我把我现在用的 PHP 调试环境打包发上来,大家下载后直接解压到某一目录即可。所需另外做的也只是根据你解压的目录设置一下编译的环境变量(见步骤 3),之后就可直接进入 $work/win32 打开 php5ts.dsw(VC6)或 php5ts.sln(VC2005)。
点击下载该 PHP win32 AllinOne 包。
工程文件说明:这其实是个“精简版”PHP 的工程文件,里面的 PHP 是 php 5.2.1 的源码,但只包含 date、reflection、session、standard 这四个内建扩展。另外 php5apache2 的 sapi 不能编译,要想编译它得再去下一份 Apache 2 的源码。除此之外还删除了大部分的测试脚本。
最后再说一下分析 PHP 源代码所需要一些基础知识。首先当然得有一定的 C 语言基础。在最后分析 Zend Engine 时可能还需要一些编译器方面知识,最好能看懂一些 lex&yacc 的语法文件(PHP 采用的是 flex 和 bison,但在语法层面相差无几)。最后是能有一定的调试技术。包括在 VC++ 环境下的有源码调试技术和无源码的二进制代码调试技术(这种情况下我一般用OllyDbg)。其中 C 语言基础是必须的,而后面的两种知识/技术则可有可无,但有的话可以达到事半功倍之效。

Vue是一款优秀的JavaScript框架,它可以帮助我们快速构建交互性强、高效性好的Web应用程序。Vue3是Vue的最新版本,它引入了很多新的特性和功能。Webpack是目前最流行的JavaScript模块打包器和构建工具之一,它可以帮助我们管理项目中的各种资源。本文就为大家介绍如何使用Webpack打包和构建Vue3应用程序。1.安装Webpack

使用CMake构建Linux内核的配置指南概述在Linux开发中,构建和配置内核是一个重要的环节。对于大多数人来说,使用Kconfig和Makefile是最常见的配置方式。然而,使用CMake来构建和配置Linux内核也是一个灵活且强大的选择。本文将介绍如何使用CMake来构建和配置Linux内核,并附上一些代码示例。安装CMake首先,我们需要安装CMak

在当前的互联网时代,Web应用程序已成为了人们日常生活中不可或缺的一部分,而且在各种应用场景下都有广泛的应用。无论是电商网站、社交媒体、在线教育平台,还是各种SaaS应用程序,都离不开Web应用程序。随着技术的不断更新迭代,Golang越来越受到Web应用程序开发者的喜爱,下面我们就快速了解如何使用Golang构建Web应用程序。一、为什么使用Golang?

在当今科技迅猛发展的时代,智慧医疗逐渐成为医疗行业的新趋势,而医疗健康的数据化和智能化,更是将如何使用PHP构建智能医疗系统变得尤为重要。本文将介绍PHP如何应用于医疗系统的开发,并结合实例详细探讨。一、智能医疗系统的功能特点首先了解智能医疗系统的主要功能特点,有助于我们更加清晰的构建医疗系统。智能医疗系统的主要特点包括:1、大数据分析预测功能:通过对医学数

CakePHP中间件:快速构建可扩展的Web应用程序概述:CakePHP是一个流行的PHP框架,被广泛应用于Web应用程序的开发。其提供了许多功能强大的工具和功能,其中包括中间件。中间件可以帮助我们快速构建和扩展Web应用程序,提高代码的可读性和可维护性。什么是中间件:中间件是在请求被派发给控制器之前或之后执行的一系列操作。它们可以完成许多任务,如身份验证、

使用JavaScript构建在线计算器随着互联网的发展,越来越多的工具和应用开始以在线形式出现。其中,计算器是一类被广泛使用的工具之一。本文将介绍如何使用JavaScript构建一个简单的在线计算器,并提供代码示例。在开始之前,我们需要了解一些基本的HTML和CSS知识。计算器的界面可以使用HTML的表格元素来构建,然后用CSS进行样式设计。以下是一个基本的

随着城市化进程的不断加快和人民生活水平的不断提高,物业管理行业也逐渐成为一个重要的领域。目前,物业管理系统已经成为了物业公司必备的工具,它可以帮助物业公司提高管理效率,优化服务质量,提升客户满意度。本文将介绍在PHP中构建物业管理系统的相关知识。一、物业管理系统的基本功能1.物业收费管理物业收费管理是物业管理系统的核心功能之一,它涉及到物业管理公司对于物业费

基于Swoole构建实时股票交易系统随着互联网技术的发展,股票交易成为了越来越多个人投资者和机构投资者的选择。为了更好地满足投资者的需求,提供更实时、高效的股票交易服务,我们可以借助Swoole这个高性能的PHP扩展来构建一个实时股票交易系统。Swoole是一个基于C语言扩展开发的PHP网络通信框架,它提供了异步、并发、高性能的网络编程特性。使用Swoole


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Mac version
God-level code editing software (SublimeText3)

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Zend Studio 13.0.1
Powerful PHP integrated development environment
