原创 php 一些記錄

PHP_EOL 換行   php --ri 擴展名 查看 PHP 擴展信息 fwrite(STDOUT,'請輸入:'); //命令行輸入 $str = trim(fgets(STDIN)); //輸入的內容  

原创 php 獲取當前目錄和當前文件夾

<?php /** * PHP獲取路徑或目錄實現 */ //魔術變量,獲取當前文件的絕對路徑 echo "__FILE__: ========> ".__FILE__; echo PHP_EOL.PHP_EOL; //魔術變

原创 linux 命令

ps afc  | grep xx.php 查看 文件開啓了幾個進程

原创 淺談API的設計及其安全性

淺談API的設計及其安全性 看起來好像前後端分離是個浪潮,原來只有APP客戶端會考慮這些,現在連Web都要考慮前後端分離 。 這裏面不得不談的就是API的設計和安全性,這些個問題不解決好,將會給服務器安全和性能帶來很大威脅 。 下面我也是

原创 PHP程序員必須知道的兩種日誌

目錄 1 前言 2 php-fpm 慢日誌 2.1 開啓慢查詢日誌 3 php-error 錯誤日誌 3.1 開啓錯誤日誌 4 致謝 前言 作爲一名程序員,比碼代碼還重要那麼一點點的東西就是日誌的分析和查詢。下面列出常見日誌及設置方

原创 PHP 的 uniqid 函數產生的 id 真的是唯一的麼?

PHP 的 uniqid 函數產生的 id 真的是唯一的麼? 最近使用到了 uniqid,就產生了疑問?uniqid 生成的 id 由什麼組成?真的是唯一的麼?什麼情況下會產生衝突? 從文檔中看到 uniqid 函數有兩個參數 uniq

原创 PHP多進程初探 --- 開篇

PHP多進程初探 --- 開篇 實際上PHP是有多線程的,只是很多人不常用。使用PHP的多線程首先需要下載安裝一個線程安全版本(ZTS版本)的PHP,然後再安裝pecl的pthread擴展。 實際上PHP是有多進程的,有一些人再用,總體來

原创 面向對象編程(設計模式)需要遵循的 6 個基本原則

在討論面向對象編程和模式(具體一點來說,設計模式)的時候,我們需要一些標準來對設計的好還進行判斷,或者說應該遵循怎樣的原則和指導方針。 現在,我們就來了解下這些原則: 單一職責原則(S) 開閉原則(O) 里氏替換原則(L) 接口隔離原則(

原创 如何理解高性能網絡模型

服務端處理網絡請求 首先看看服務端處理網絡請求的典型過程:     由上圖可以看到,主要處理步驟包括: 獲取請求數據,客戶端與服務器建立連接發出請求,服務器接受請求(1-3)。 構建響應,當服務器接收完請求,並在用戶空間處理客戶端的請求

原创 遍歷文件夾把文件夾內的所有文件 複製到新文件夾內

<?php function read_all ($dir,$newDir) {     if(!is_dir($dir)) return false;          $handle = opendir($dir);       

原创 php 系統函數

array_column($result, 'xxx') 返回輸入數組中某個單一列的值 (二維數組求和) 。 array_sum() 函數返回數組中所有值的和。(一維數組求和)

原创 Laravel 5 微信小程序獲取『用戶信息』擴展

小程序官方的加解密 SDK 已經非常清楚了,只不過改成 Laravel 風格而已,僅僅相當於搬磚工。至於重複造輪子,我發現其他人的擴展解密用戶信息的時候代碼出錯了,並且需要安裝一個 Laravel 的 Curl 擴展,沒有提示用戶去安裝。

原创 linux內核學習之網絡篇——TCP/IP概述

1.ISO 參考模型因特網協議棧中的層人們已經進行了一些討論關於如何將TCP/IP參考模型映射到到OSI模型。由於TCP/IP和OSI模型組不能精確地匹配,還沒有一個完全正確的答案。另外,OSI模型下層還不具備能夠真正佔據真正層的位置的能

原创 laravel 常用的artisan命令

全局篇查看artisan命令php artisanphp artisan list查看某個幫助命令php artisan help make:model查看laravel版本php artisan --version使用 PHP 內置的開

原创 php一行代碼獲取本週一,本週日,上週一,上週日,本月一日,本月最後一日,上月一日,上月最後一日日期 轉 (2013-11-11 10:55:38)

本週一echo date('Y-m-d',(time()-((date('w')==0?7:date('w'))-1)*24*3600)); //w爲星期幾的數字形式,這裏0爲週日本週日echo date('Y-m-d',(time()+