8.strrev()反转字符串,str_pad()在字符串两边填充内容(反trim) 9.parse_url()返回一个由URL和各个成分组成的数组 五、数组 1.PHP中所有数组都存储为关联数组,所以关联数组和索引数组的唯一区别在于键是什么.../blob/master/phpprogramming/9.php 十、PDF 1.fpdf、tcpdf https://github.com/zhangyue0503/php/blob/master.../phpprogramming/10.php 十一、XML 十二、安全 1.确保对所有你从远程源接收的数据进行过滤输入,越严格越安全 2.用上下文情景的方式转义输出,以确保你的数据不被远程系统误解 3...6.把包含文件存储到根目录外面,不要用.inc扩展名,直接用.php或其他常见的扩展名 7.当用户权限变更时总是调用session_regenerate_id() 8.只要构成的文件名有用户提供的成分...mysql和其他数据库结果集后立即释放 十四、不同平台的PHP 十五、网页服务 十六、调试PHP 十七、日期和时间 1.DateTime类处理日期和时间本身 2.DateTimeZone类处理时区 3.
/2.php 三、PHP在移动设备上的应用 A.检测设备 1....C.渲染工具 1.WALL 2.图像调整:ImageAdapter 3.响应性CSS:@media相关属性 D.模拟器和SDK 直接去找手机模拟器下载 E.QR码 TCPDF...必须在每个脚本开始重新生成会话并在php.ini中设置指令,在PHP中可以使用新的值替换传话ID,但保留当前传话的数据。...将WAR文件部署到一个公开访问的服务器 3.Jenkins和phpUnderControl 4.CI服务器使用以下工具:版本控制;单元测试和代码覆盖;静态分析;自动构建; 5.静态分析:检测代码包括计算复杂度...、依赖性、最佳实践建议、编程规范的符合度、找出问题的代码或者可能的缺陷;显示重复的代码;产生文档;相关工具:PhpCheckstyle、PHPCodeSniffer(编程规范的符合);PHPDocumentor
PHP编程规范 引自 RageFrame <?...php namespaceStandard; // 顶部命名空间 // 空一行 use TestTestClass; //use引入类 /** * 类描述 * * 类名必须大写开头驼峰. */...value 形参名称/描述 * * @return 返回值类型 返回值描述 * 返回值类型:string,array,object,mixed(多种,不确定的)
造成socket_read(): unable to read from socket 3.PHP的并发IO编程 原文:http://rango.swoole.com/archives/508...这时候就要监听可写事件,在纯异步的编程中,必须去监听可写才能保证send操作是完全非阻塞的。...PHP socket内部源码 从PHP内部源码来看,PHP提供的socket编程是在socket,bind,listen等函数外添加了一个层,让其更加简单和方便调用。...但是一些业务逻辑的程序还是需要程序员自己去实现。 下面我们以socket_create的源码实现来说明PHP的内部实现。 前面我们有说到php的socket是以扩展的方式实现的。...而在c的socket编程中,我们使用如下方式初始化socket。
1.6 文件编程 1.6.1 文件夹操作 **1 、**创建文件夹【mkdir(路径,权限,是否递归创建)】 make:创建 directory:目录,文件夹 例题 <?...php //1、创建目录 //mkdir('./aa'); //创建aa文件夹 //mkdir('./aa/bb'); //在aa目录下创建bb(aa目录必须存在) mkdir('..../aa/bb/cc/dd',0777,true); //递归创建 小结: 1、0777表示是文件夹的权限,在Linux中会详细讲解 2、true表示递归创建,默认是false **2、**删除文件夹【rmdir.../aa/bb/cc/dd'); //删除dd文件夹 提醒: 1、删除的文件夹必须是空的 2、PHP基于安全考虑,没有提供递归删除。
本规范由 EasyChen 借鉴 SINA网络应用开发部《C++开发规范》和互动技术部《PHP4开发规范》,以及phpDocument规范 整理出的开发规范。...我觉得非常不错, 适合PHP的开发,给大家参考,养成一个良好的编程风格是非常有必要的 第1章 命名规范 1.1变量 1.1.1全局变量 全局变量使用$g_开头,如$g_data_list。...函数的命名建议使用动词+名词的方式,如get_user_img。 完成一组功能的函数放到一个文件中,存放函数的文件采用function_name.func.php命名。...,可以存放在一个文件中; 存放类的文件采用ClassName.class.php方式命名。...1.4 方法 方法使用英文的大小写来分隔单词,除首个单词外,其他单词的首字母大写,如getCurrentPage(); 不要采用不常用的缩写,如where2go(); 使用常用的缩写时,只大写首字母,如
&b=".urlencode(你也好) 2. win32下的session不能正常工作 php.ini默认的session.save_path = /tmp 这显然是linux下的配置,win32下php...如果一个变量没被赋值就引用在php里是被允许的,但会有 notice提示。...数组非数字键名引号的必要性 PHP 会把数组中非数字键名没有引号引起来的键名当作是常量去获取, 当找不到的时候, 抛出一个NOTICE(Notice: Use of undefined constant...使HTML/PHP格式的字符串如何照原样显示 如: <?PHP $str="HTML"; echo "被解释处理过的: "....PHP文件中的结尾符号 ?> 在文件中 ?> 结尾符号它不是必需的。有时就可以不必要加上,这样可以避免产生一些难于调试的错误问题。
在日常开发中,我们经常碰到这样的问题,即有些PHP问题看似简单,一说就明,但是一到使用时就踩坑。...一般来说,php是不支持有BOM的,php文件应该保存为UTF-8无BOM类型,所以在保存 UTF8 编码PHP文件时,不要使用 BOM。...3、由于正反斜杠的原因,PHP函数basename使用无效 我们经常使用PHP函数basename,来从一个包含有指向一个文件的全路径的字符串中获取基本的文件名,但是由于正反斜杠的原因,有时你会发现basename...实际上,几乎所有的编程语言都没能精确表示小数(符点数),这是一个普遍存在的现象,因为这个是 IEEE 754 的缺陷。想要解决此问题,只能另立标准,似乎只有Mathematica解决了此问题。...两个比较时,PHP会先尝试判别左右两者是否为数字。而问题就在于什么样的字符串是数字,是单纯的数字串吗?
PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势。实际上在Swoole出现之后,这种串行化编程的模式早已被打破。...game.php 打开3个Chrome的Tab页。...并发编程会遇到之前串行编程所没有的新问题,如: 数据同步问题 上下文管理问题 时序问题 这需要开发者具备更严谨的工程思维能力,也需要开发者具备更深厚的编程功底。...思维转变 Swoole其实颠覆了以往PHP的编程模式,使得程序员的视野不再局限于一次请求的处理,不再局限于对于数据库CURD操作、接口调用。...配合使用Swoole4提供的协程编程能力,就可以在内存空间内实现各种复杂的交互。 新的编程模式,可以让PHPer轻松地去实现网络游戏、服务器系统、智能家居、物联网等项目。
PHP开发工具及其优缺点 首先,可以用记事本来开发。 记事本每个人的电脑上都有,也就是我们常说的txt文件。把txt这个后缀更改为点PHP就可以了。然后该怎么编辑就怎么编辑。...一、Sublime Text 支持多种编程语言的语法高亮、拥有优秀的代码自动完成功能 二、拥有代码片段(Snippet)的功能,可以将常用的代码片段保存起来,在需要时随时调用。...四、Sublime Text 还具有良好的扩展能力和完全开放的用户自定义配置与神奇实用的编辑状态恢复功能。 ? 第三个开发软件是phpstrom。 是专门针对php开发而设计的一款软件。...其中php的自动补全功能非常好用,语法提示,高亮以及界面都非常友好。强烈推荐用这款软件 进行开发。...以上就是php用什么工具开发的详细内容, 感谢大家的学习和对ZaLou.Cn的支持。
目录 PHP编译器: Notepad++ Visual Studio Code Sublime Text HBuilder Zend Studio vim PHP编译器: Notepad++:【https...vim:【https://www.vim.org/】 Notepad++ Notepad++是一款文本编辑器,软件小巧高效,支持多种编程语言,如C、C++、Java、 C#、XML、HTML、PHP>...Sublime Text Sublime Text是一个轻量级的编辑器,也支持各种编程语言。 HBuilder HBuilder是一款国产的前端开发工具。 ...Eclipse Eclipse是一款支持各种语言开发的集成开发环境,为程序开发提供了很多强大的功能, 是一款老牌的开发工具。...Zend Studio Zend Studio是目前公认的最强大的PHP开发工具,具备十分专业的编辑功能、调试工具等,目前Zend Studio是一款收费软件,提供免费的试用版。
PHP的LZF压缩扩展工具 这次为大家带来的是另外一个 PHP 的压缩扩展,当然也是非常冷门的一种压缩格式,所以使用的人会比较少,而且在 PHP 中提供的相关的函数也只是对字符串的编码与解码,并没有针对文件的操作...因此,就像 Bzip2 一样,我们也可以用它来进行一些加密传输的操作。 LZF 扩展直接在 phar.php.net 下载安装即可,也是走得正常的 PHP 的扩展安装的步骤。...而 LZF 是非二进制的,采用一种熵算法的压缩算法,自然会有很多内容是肉眼可见的。最终,还是要取决于我们的业务形态来决定采用哪种具体的压缩扩展工具。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/PHP%E7%9A%84LZF%E5%8E%8B...%E7%BC%A9%E6%89%A9%E5%B1%95%E5%B7%A5%E5%85%B7.php 参考文档: https://www.php.net/manual/zh/book.lzf.php https
我已有将近二十年的编程经验,并使用过各种编程语言进行开发。在我以前做过的很多工作和现在正在做的这份工作中,我非常高兴能够将 PHP 作为核心编程语言。...从第一次使用 PHP 工作开始,我就听到了关于 PHP 的各种抱怨,但与此同时我也看到了 PHP 的威力。 PHP 至少是一门有趣的编程语言。这门语言和用它构建的程序通常属于两种设计哲学。...像 Laminas 和 Symfony 这样的框架就使用了面向对象编程的最佳实践,使开发者可以用这些框架编写结构正确的代码。 PHP 是怎么做到这些的?这是因为 PHP 是最糟糕的编程语言。...这些工具是一流的,1991 年的 LISP 拥有我们今天仍然享受的所有舒适,比如步骤调试、数据检查和花哨的编辑器。 作为一种语言,LISP 是完备的。...无论何时,在针对 PHP 需求最大的设计任务:编写 Web 应用程序时,PHP 都是完备的。PHP 从未被设计成一种可以适用于编程世界所有问题的语言。
原文:http://www.php100.com 单 引号代替双引号来包含字符串,这样做会更快一些。...因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加...1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。 ...8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。 ...14、用@屏蔽错误消息的做法非常低效,极其低效。 15、打开apache的mod_deflate模块,可以提高网页的浏览速度。 16、数据库连接当使用完毕时应关掉,不要用长连接。
因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数” 用单引号代替双引号来包含字符串,这样做会更快一些。...因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号...1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。...8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。...14、用@屏蔽错误消息的做法非常低效,极其低效。 15、打开apache的mod_deflate模块,可以提高网页的浏览速度。 16、数据库连接当使用完毕时应关掉,不要用长连接。
菲纳格动态逆定律: 会出错的,终将会出错 —- 在最糟糕的时刻。 防御性编程是什么意思 防御性编程,简单的说,就是在编程的时候有目的地预测可能的故障点。目的是在那些可能发生的问题发生前解决它们。...在用PHP编程的许多情况下你不会需要“else”。 假设,你在写一个函数并且需要一个条件语句。...如果你的应用 仍然能使用几年,可能会升级PHP版本并且失去一些功能,或者一些你自己代码里面具有交互的组件之间需要改变。预测这些是很困难的,所以好的注释和文档是 非常重要的。...有时候保持一颗防御性编程的心能帮你更有效更安全地估计,计划和编程。...译文链接:http://www.codeceo.com/article/php-defensive-programming.html 英文原文:Defensive Programming in PHP
总结 由于市面上编程软件较多,我在这就列举了3个,有其他需要的小伙伴可以自行百度下载或者留言给我,谢谢大家的配合。 The end
★ 编程工具 ★ Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。...幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。...Indigo的3.7版;2012年6月发布代号为Juno的4.2版;2013年6月发布代号为Kepler的4.3版;2014年6月发布代号为Luna的4.4版;2015年6月项目发布代号为Mars的4.5...Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。...随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。
1、php隐性的三元操作符(?...PHP函数名和类名不区分大小写的,而变量名是区分大小写的。 所以自己写的php模块,往往是大写的问题,编译不通过。...PHP的高效率写法: 请看:PHP高效率写法(详解原因) 9....也可以用sed 这样的工具来做: sed 's/^M//' filename > tmp_filename mv -f tmp_filename filename 来做 特别说明:^M并不是按键...PHP的bug么?
之前本人其实写过一个tcp多进程服务器了http://www.php20.cn/article/139,本文将总结以及完善php实现网络服务器相关代码 php实现tcp服务器 tcp服务器的实现,其实和...c语言实现的步骤差不多,大概为: 创建一个socket 绑定socket为tcp,到网卡中 监听socket(将socket改为可接受其他进程的请求) 阻塞/非阻塞,循环获取连接事件 <?...PHP_EOL; sleep(1); } php实现udp服务端 udp是无连接的协议,我们不需要去额外的创建客户端的socket进行一对一的传输,直接可通过创建udp服务端的socket,接收...== false) 在上面的实现过程中,recvfrom都是阻塞的,这种情况会造成我们无法主动给客户端发送消息,我们可以参考tcp服务器的非阻塞实现,进行修改代码 php实现udp客户端 通过udp实现服务端的代码...,我们可以发现: 只要有服务端的ip和端口(废话,没端口怎么通信),我们就可以用udp服务端的代码当成udp客户端使用(需要注意recvfrom阻塞问题). <?
领取专属 10元无门槛券
手把手带您无忧上云