原创 php擴展調用其他擴展函數

在擴展開發中,並不是所有的功能都需要自已去實現 。可以調用一些其他擴展已經實現的函數。 調用內核標準函數 如下面是調用php_string_tolower的過程。 引入頭文件 #include "ext/standard/php_

原创 php Bug #74166 IPv6 forced to be enabled

在docker容器中運行php7.1啓動時報如下錯誤。 php-fpm | [04-Apr-2020 07:47:15] ERROR: failed to create new listening socket: socke

原创 如何理解裝飾者(Decorator)設計模式

裝飾者模式是對原有類進行多次附加,比單純的繼承更加靈活的組和。 本例參照網上黃燜雞點加小菜的實例來講解。 生活中不同的人喜歡加不一樣的小菜,如不用裝飾者模式,肯定要加一堆的if else。長期下去不利於代碼的維護。 菜品抽象類 a

原创 在Windows上編譯PHP及擴展的方法

在windows下編譯php擴展 查看官方文檔 在你開始之前 在Windows上構建PHP前需要做三件事 正確設置的構建環境,包括編譯器和PHP SDK 預編譯的庫和PHP依賴的第三方庫 PHP源碼 編譯器 要求 PHP支持使

原创 怎麼解決在Mac系統升級後phpize出錯的問題

每次升級Max系統後總會出現一些問題,這次升級到10.15.1版後,編譯php擴展時出現如下問題。 grep: /usr/include/php/main/php.h: No such file or directory grep

原创 運行編譯java文件小插件

java代碼總是要先編譯再執行,這樣很操作起來很麻煩。 這個一個小工具可以直接運行ava文件,省去手動編譯的麻煩。 類似於go 一樣,直接運行go run 就可以運行。可以在CMD運行,也可以在EditPlus中運行。 命令行運行

原创 mysql update join關聯表語句

工作中經常會使用join子句來查詢表中的行(在INNER JOIN的情況下),或者可能沒有(在LEFT JOIN的情況下)另一個表中的相應行。 在MySQL中,可以在UPDATE語句中使用JOIN子句執行跨表更新。 MySQL U

原创 如何配置Filebeat收集日誌文件

[Filebeat7.6] 日誌輸入 filebeat.inputs: - type: log paths: - /var/log/*.log - /var/path2/*.log 您可以添加額外的 配置設置

原创 php date()函數參數速查表

使用php date(‘Y-m-d H:i:s’,time())獲取時間不對,差8小時。其實不是PHP獲取日期時間不對,主要是時區沒有選擇好。選擇中國時間時間就對上了。 有以下兩種方法解決 可以在程序中加上 date_defau

原创 如何解決使用brew update很慢的問題

在mac上使用brew update、brew install很慢,主要原因是需要訪問的網絡太慢。切換國內源可以解決。 使用中科大源 # 步驟一 cd "$(brew --repo)" git remote set-url ori

原创 php內核數組(HashTable)實現方式

數組是php重要的部分,內核中也有大量使用。一起來看看是如何實現的吧。 php7中數組類型有兩個概念分爲packed、hash數組。 packed 數組:key 爲順序數字,索引數組。 hash 數組:key爲字符串,關鍵數組。

原创 使用PHP實現一個簡單web服務器

web服務器是基於http協議,將對應的文件傳輸給客戶端的服務器。 web服務器是什麼 web服務器是基於http協議,將對應的文件傳輸給客戶端的服務器。 HTTP協議 http 協議的請求及響應方式設計 http請求信息的結構

原创 Golang安裝使用gRPC框架

安裝Protobuf 下載protobuf安裝程序。 裝protoc.exe放入 $GOROOT/bin 目錄下。 安裝grpc相關功能 go get google.golang.org/grpc 由於被牆執行如下命令後出錯,可

原创 php獲取數組第一個和最後一個元素的key

PHP 7.3.0之前的版本獲取數組第一個和最後一個元素的key的幾種方法。 $a = [ 'one' => 1, 'two' => 2, 'three' => 3 ]; 方法一 $first = rese

原创 安裝ElasticSearch7.6使用自帶JDK

平時使用jdk8,es7啓動會報錯。 需要修改elasticsearch-env配置文件,使用自帶jdk。 future versions of Elasticsearch will require Java 11; your J