原创 VLD擴展使用指南

VLD(Vulcan Logic Dumper)是一個掛鉤在Zend引擎下,並且輸出PHP腳本生成的中間代碼(執行單元)的擴展。它可以在一定程序上查看Zend引擎內部的一些實現原理,是我們學習PHP源碼的必備良器。它的作者

原创 【Day59】MySQL數據庫性能優化之一(緩存參數優化)

數據庫屬於IO密集型的應用程序,其主要職責就是數據的管理及存儲工作。而我們知道,從內存中讀取一個數據庫的時間是微秒級別,而從一塊普通硬盤上讀取一個IO是在毫秒級別,二者相差3個數量級。所以,要優化數據庫,首先第一步需要優化的就

原创 【Day58】記幾個常見的Laravel報錯

報錯:「Can’t swap PDO instance while within transaction」 通過查詢 Laravel 源代碼,可以確認異常是在 setPdo 方法中拋出的: public function se

原创 php源碼之路第七章第一節 ( Zend虛擬機)

在前面的章節中,我們瞭解到一個PHP文件在服務器端的執行過程包括以下兩個大的過程: 遞給php程序需要執行的文件, php程序完成基本的準備工作後啓動PHP及Zend引擎, 加載註冊的擴展模塊。 初始化完成後

原创 php源碼之路第七章第一節 (語法的實現之詞性解析)

語言從廣義上來講是人們進行溝通交流的各種表達符號。每種語言都有專屬於自己的符號,表達方式和規則。就編程語言來說,它也是由特定的符號,特定的表達方式和規則組成。語言的作用是溝通,不管是自然語言,還是編程語言,它們的區別在於自

原创 【Day53】Linux常用指令

常用指令 ls   顯示文件或目錄 -l 列出文件詳細信息l(list) -a 列出當前目錄下所有文件及目錄,包括隱藏的a(all) mkdir

原创 php源碼之路第七章第三節 (PHP代碼的加密解密)

PHP語言作爲腳本語言的一種,由於不需要進行編譯,所以通常PHP程序的分發都是直接發佈源代碼。對於一些開源軟件來說,這並沒有什麼問題,因爲它本來就希望有更多的人閱讀代碼,希望有更多的人蔘與進來,而對於商業代碼來說,這卻是一

原创 【Day52】php生成帶logo二維碼方法

方法一: 一、使用的類庫 1、phpqrcode(php庫) 2、qrcode.js(javascript庫) 方法二: 二、phpqrcode的使用 只用php的類庫,也就是二維碼的生成在後臺操作。因爲要在後臺生成帶log

原创 【Day57】mysql報錯大全

1005:創建表失敗 1006:創建數據庫失敗 1007:數據庫已存在,創建數據庫失敗 1008:數據庫不存在,刪除數據庫失敗 1009:不能刪除數據庫文件導致刪除數據庫失敗 1010:不能刪除數據目錄導致刪除數據庫失敗

原创 【Day55】防止sql注入的幾種方法

過濾一些常見的數據庫操作關鍵字 select ,insert,update,delete,and,*等或通過系統函數addslashes對內容進行過濾 php配置文件中register_globals=off;設置爲關閉狀態.(

原创 php源碼之路第七章第二節 (中間代碼的執行)

我們對opcode進行了一個簡略的說明。這一小節我們講這些中間代碼在Zend虛擬機中是如何被執行的。 假如我們現在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main函數,默認情況下

原创 php源碼之路第八章第二節 ( PHP中的線程安全)

在多線程系統中,進程保留着資源所有權的屬性,而多個併發執行流是執行在進程中運行的線程。如Apache2 中的woker,主控制進程生成多個子進程,每個子進程中包含固定的線程數,各個線程獨立地處理請求。同樣,爲了不在請求到來

原创 php源碼之路第七章第二節 (來實現自己的語法)

經過前面對r2ec以及Bison的介紹,熟悉了PHP語法的實現,我們來動手自己實現一個語法吧。也就是對Zend引擎語法層面的實現。以此來對Zend引擎有更多的瞭解。 編程語言和社會語言一樣都是會慢慢演進的,不同的

原创 【Day56】mysql之TIMESTAMP(時間戳)用法詳解

一、TIMESTAMP的變體 TIMESTAMP時間戳在創建的時候可以有多重不同的特性,如: 1.在創建新記錄和修改現有記錄的時候都對這個數據列刷新: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON

原创 php源碼之路第八章第一節 (線程,進程和併發)

進程 進程是什麼?進程是正在執行的程序;進程是正在計算機上執行的程序實例;進程是能分配給處理器並由處理器執行的實體。進程一般會包括指令集和系統資源集,這裏的指令集是指程序代碼,這裏的系統資源集是指I/O、CPU、內