PHP 优秀资源汇集[2019.02.12更新]

以下是我整理好的 PHP 资源,各位看官拿去用,不用再自己找了。

每周在 GitHub 上更新,觉得不错请点个 Star ❤️

如转载分享,请保留出处,谢谢 😆

原文地址: https://shockerli.net/post/php-awesome

GitHub: https://github.com/shockerli/php-awesome

曾国藩语录

本文收集了曾文正公的经典语录,予己每日三省

曾国藩(1811年11月26日-1872年3月12日),初名子城,字伯涵,号涤生,宗圣曾子七十世孙。中国近代政治家、战略家、理学家、文学家,湘军的创立者和统帅。

在曾国藩的倡议下,建造了中国第一艘轮船,建立了第一所兵工学堂,印刷翻译了第一批西方书籍,安排了第一批赴美留学生。可以说曾国藩是中国近代化建设的开拓者。

曾国藩与胡林翼并称“曾胡”,与李鸿章、左宗棠、张之洞并称“晚清中兴四大名臣”。官至两江总督、直隶总督、武英殿大学士,封一等毅勇侯,谥号“文正”,后世称“曾文正”。有人推崇他为千古第一完人,但因忠于清室镇压太平天国暴乱又饱受争议。

  • 将来不迎,当下不杂,过往不念

  • 倚天照海花无数,流水高山心自知

  • 利可共而不可独,谋可寡而不可众;独利则败,众谋则泄

  • 久利之事勿为,中争之地无望

  • 惟正己可以化人,唯尽己可以服人

图书推荐 [2018.12.29更新]

我所收集的优秀书籍,不限于技术,各种类型都有,其实更多的是历史、传记等。

历史

书名 说明 推荐指数
用年表读懂中国史 中国历史入门书籍 ★★★★★
流血的仕途(全2册) 站在大秦丞相李斯的角度讲述其一生仕途的历史小说 ★★★★★
大秦帝国(全6部) 讲述自商鞅变法起的秦国历史小说 ★★★★★
如果这是宋史(全10册) 高天流云 ★★★★
明朝那些事儿(全7册) 当年明月 ★★★★
中国的匈奴 杨献平 ★★★
贾志刚说春秋(全7册) 贾志刚 ★★★★
血腥的盛唐(全7册) 王觉仁 ★★★★
中国近代通史(全10册) 1840-1949,可能是最权威、最全面的近代史丛书 ★★★★

PHP 实现归并排序算法

算法原理

下列动图来自@五分钟学算法,演示了归并算法的原理和步骤。

merge

原理:

利用递归,先拆分、后合并、再排序。

步骤:

  • 均分数列为两个子数列
  • 递归重复上一步骤,直到子数列只有一个元素
  • 父数列合并两个子数列并排序,递归返回数列

lsyncd —— 多机器实时同步文件神器

lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。

使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过 rsync 去差异同步,达到实时的效果。

安装

在源文件服务器上安装:

yum -y install lsyncd

Shell 命令组合集[2018.12.10更新]

本文档收集了常用的Shell命令组合,依然在不定期更新中…

终端命令

列出当前目录下的所有文件(包括隐藏文件)的绝对路径

find $PWD -maxdepth 1 | xargs ls -ld

递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

find $PWD | xargs ls -ld

在每行记录的开头加上当前路径

ls | sed "s:^:`pwd`/:"

统计网卡的流量数据

更改 Linux 系统的用户名和主机名

可能系统安装时的默认用户名我们不喜欢,但已经在该用户上已经配置了很多东西,所以我们只能修改用户名、而非新建一个。

修改主机名

假设此处我们要修改的新主机名为 hello

  • 修改 hostname 文件

    sudo vim /etc/hostname
    

    将内容改为 hello/etc/hostname 文件修改了需要重启才会生效。

  • 用 hostname 修改当前会话的主机名

    hostname hello
    
  • 修改 hosts 文件

    sudo vim /etc/hosts
    

    将内容修改为类似如下:

    127.0.0.1 localhost
    127.0.0.1 hello
    

Linux 命令 —— scp 远程文件拷贝

scp 是 secure copy 的缩写,scp 是 Linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。Linux 的 scp 命令可以在 Linux 服务器之间复制文件和目录。

命令格式

scp [可选参数] file_source file_target

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

gops —— Go 程序诊断分析工具

GitHub: https://github.com/google/gops

一个用于列出和诊断分析系统中正在运行的 Go 程序的命令行工具

安装

go get -u github.com/google/gops

命令帮助

执行 gops help 查看帮助文档:

gops is a tool to list and diagnose Go processes.

	gops <cmd> <pid|addr> ...
	gops <pid> # displays process info

Commands:
    stack       	Prints the stack trace.
    gc          	Runs the garbage collector and blocks until successful.
    setgc	        Sets the garbage collection target percentage.
    memstats    	Prints the allocation and garbage collection stats.
    version     	Prints the Go version used to build the program.
    stats       	Prints the vital runtime stats.
    help        	Prints this help text.

Profiling commands:
    trace       	Runs the runtime tracer for 5 secs and launches "go tool trace".
    pprof-heap  	Reads the heap profile and launches "go tool pprof".
    pprof-cpu   	Reads the CPU profile and launches "go tool pprof".


All commands require the agent running on the Go process.
Symbol "*" indicates the process runs the agent.