PHP入门之开发工具推荐

虽然PHP是脚本语言,无需编译即可使用,但是一款好的开发工具绝对是帮助你提升开发效率的利器。俗话说磨刀不误砍柴工,选择一款适合自己的开发工具绝对是有利而无一害。

Sublime Text 3(http://www.sublimetext.com)

Sublime Text 3是一款轻量级的代码编辑器(对,他不算是IDE),配合Package Control里各种各样的插件,绝对不输于其他IDE。全平台支持。

PHP入门之开发工具推荐,最后一个绝对是神器

上面提到了,Sublime Text 3是一款代码编辑器,虽然其内置功能已经很丰富,但是为了方便开发,我们还需要安装一些插件。

首先,要安装插件,Package Control必不可少,可以访问官网(https://packagecontrol.io/installation)获取安装方法,这里不详细介绍了。安装好Package Control,重启Sublime,按下Ctrl+Shift+P(Mac:Shift+Command+P),输入install,选择第一个,然后等待左下角loading完毕,即可查找插件并安装。下面推荐几个插件。

  • Localization:汉化插件,毕竟不是每个开发者都像我精通专业八级英文
  • DocBlockr:生成函数注释块,帮助新手快速创建注释
  • Alignment:代码快速对齐,强迫症的福音
  • thinkphp:ThinkPHP代码提示,不过目前仅支持ThinkPHP3.2.3
  • SublimeCodeIntel:代码自动提醒+函数跳转Zend Studio(http://www.zend.com)

Zend Studio 是一款一流的商用(收费)PHP IDE,基于Eclipse开发,全平台支持。

PHP入门之开发工具推荐,最后一个绝对是神器

Zend Studio 的界面很直观,并提供了大量的现代化功能和工具,有助于加快PHP和Web的开发。其主要功能包括:

  • 验证、索引、搜索PHP代码方面性能很好
  • 可以使用Zend Debugger、Xdebug工具进行调试。
  • 支持原生Eclipse插件。
  • 支持Git、SVN等版本控制工具。
  • 支持PHP、JavaScript、CSS、HTML的代码智能建议等私信小编Zend获取最新破解版安装及汉化教程。

    PHPStorm(http://www.jetbrains.com/phpstorm)

PHPStorm 是由JetBrains公司开发的一款全功能PHP IDE(收费),其功能与Zend Studio类似,不过其对于PHP与HTML、SQL等混编时的支持更好,它能智能识别出PHP字符串是否HTML或SQL语句,并且高亮提示,这是其他IDE所不具备的功能。因为业务原因,小编需要手写大量SQL语句,此时PHPStorm的优势及其明显。不但如此,它还会在函数的参数前加上参数说明,让开发变得一目了然。

PHP入门之开发工具推荐,最后一个绝对是神器

PHPStorm的主要功能包括:

  • 版本控制功能
  • 数据库连接
  • composer
  • 远程部署
  • 命令行工具
  • Zend Debugger和Xdebug调试私信小编PHPStorm获取最新破解版安装教程。

    NetBeans(https://netbeans.org)

NetBeans是一款供大众使用的PHP IDE,为什么这么说呢,因为官方免费,并且全平台支持。

PHP入门之开发工具推荐,最后一个绝对是神器

NetBeans起初仅支持Java开发,但是现在NetBeans已经全面支持PHP,对于像一些流行框架、代码模板、智能代码补全、提示、快速修复和重构等功能有良好的支持吗,也可以使用xDebug进行调试。不过说的再好听小编没用过,只不过被人安利了很久关注一下。主要是官网太丑,实在看不下去。

Eclipse PDT(https://eclipse.org/pdt)

上面四个工具这么迪奥,最终还不是基于Eclipse?Eclipse PDT(PHP Development Tools)是一款开源、免费的PHP IDE。得力于Eclipse开发者社区开发的各种各样的插件,使Eclipse拥有以上四种IDE一样的功能,只不过需要花费点功夫罢了。

PHP入门之开发工具推荐,最后一个绝对是神器

开始使用前,你可以下载专用于PHP开发的Eclipse包,它包含了PHP语言支持、XML编辑器、版本管理工具等功能。全平台支持。

Atom(https://atom.io)

Atom和Sublime Text类似,其本身只是一款代码编辑器,但是借助于各种各样的插件和包扩展,可以使它摇身变为免费的全功能PHP IDE,甚至于变身成为超炫酷的编辑利器。全平台支持。

PHP入门之开发工具推荐,最后一个绝对是神器

如果要把Atom变成PHP IDE,需要安装hyperclick-php、php-cs-fixer、php-integrator-base、linter-php、atom-autocomplete-php等插件,如果你想要更多功能,可以点此全部插件列表

在Mac上搭建PHP环境

很多人安利Mac是程序猿必备,但是我也用了一年的Mac了,感觉还是不如Windows用起来得心应手,所以我觉得没有必备一说,只要喜欢便好。

PHP入门之环境搭建(三)

其实Mac是内建Apache + PHP环境的,在macOS 10.12及以下版本,系统内建Apache + PHP5.X,在macOS 10.13版本,系统内建Apache + PHP7.1.7版本。虽然内建的环境略有不足,但是对于学习PHP开发已经绰绰有余了。下面我就教大家如何开启Mac内建Apache + PHP环境,并安装MySQL。使用内建Apache+PHP会比较复杂,如果您没有接触过命令和vim,或者想简单一点的话,可以直接度娘搜索MAMP,使用一键环境包来安装。

启动内建Apache+PHP

1.打开终端(terminal),可以在launchpad-其他里打开,也可以按commond+空格打开Spotlight搜索终端打开。

PHP入门之环境搭建(三)

2.在终端输入sudo apachectl start,输入密码(密码不会显示),启动Apache服务。启动成功没有提示,再输入httpd -v 或者httpd -version,如果输出版本信息,即成功打开。

PHP入门之环境搭建(三)

3.浏览器访问localhost,出现It works!

PHP入门之环境搭建(三)

4.内建Apache服务默认根目录为/Library/WebServer/Documents,使用终端输入cd /Library/WebServer/Documents进入Documents目录,然后输入vim phpinfo.php,创建并编辑phpinfo.php文件,先按i键进入insert模式(左下角提示–INSERT–),输入以下内容,然后按esc退出编辑模式,输入:x(或:wq)保存并退出。

PHP入门之环境搭建(三)

PHP入门之环境搭建(三)

4.然后我们在浏览器访问localhost/phpinfo.php,发现并不好使(╯﹏╰)。因为现在Apache还没有加载PHP模块,直接文本输出了。

PHP入门之环境搭建(三)

5.在终端输入sudo vim /etc/apache2/httpd.conf,输入密码,打开httpd.conf文件(Apache配置文件)。找到红框部分(也有可能是php5),按i键进入编辑模式(左下角提示),删除前面的#,按esc,然后输入:x(或:wq)保存并退出,然后继续输入sudo apachectl restart重启Apache服务。

PHP入门之环境搭建(三)

PHP入门之环境搭建(三)

6.回到浏览器刷新phpinfo.php页面,即可成功输出PHP信息。

PHP入门之环境搭建(三)

安装MySQL

1.安装Homebrew(Mac包管理工具),访问https://brew.sh/index_zh-cn.html,按照网站说明安装homebrew

PHP入门之环境搭建(三)

2.在终端输入brew install mysql 安装MySQL,默认用户名root,无密码

PHP入门之环境搭建(三)

终端输入mysql -uroot连接数据库

PHP入门之环境搭建(三)

3.推荐使用Navicat,这是一款功能强大界面友好的数据库管理工具。

点击左上角connection,选择MySQL,如果没有修改过MySQL密码,直接点击确认即可

PHP入门之环境搭建(三)

PHP入门之环境搭建(三)

保持默认值

总结

使用macOS内建Apache + PHP搭建环境的教程到此结束,难点是修改Apache配置文件加载PHP模块,很多不会vim的小伙伴可能会比较难受。因为涉及到权限问题,使用内置的文本编辑无法保存,如果您安装了sublime等编辑器,也可以使用。

在Linux上搭建PHP环境

上篇文章《PHP入门之环境搭建(一)》为大家介绍了在Windows上搭建WANMP环境,本文将为大家介绍LANMP(Linux、Apache、Nginx、MySQL、PHP)环境的搭建。

PHP入门之环境搭建(二)

相对于Windows,相信很多人对于Linux并不是特别的熟悉,不过没关系,今天为大家带来的是LANMP一键环境包WDCP的安装,只需要简单的3条命令,即可顺利安装LANMP环境。

首先我们需要准备一个纯净的Linux系统(即不带任何其它WEB环境的系统),如果没有,可以使用虚拟机或者私信我Linux获取免费云服务器体验。

如果您当前使用的是Windows,可以使用putty来远程访问Linux服务器,如果您使用的是Mac,可以使用系统自带的终端APP来访问。

1.putty

搜索下载putty,仅0.5M。打开后在右侧Host Name输入IP地址,点击下面的open,会提示首次连接,点击确定即可远程连接Linux,继续在命令窗口输入密码(密码不会显示,认真输入正确按回车即可)

PHP入门之环境搭建(二)

2.终端

打开终端,输入ssh @ip地址,按回车,会提示host can’t be established,输入yes回车。在输入password时密码不会显示,只认真将密码输入正确按回车。

PHP入门之环境搭建(二)

后面的操作两者均相同,只需要输入图中的命令,按回车即可。

1.获取WDCP安装包,输入wget及其后面的内容,注意不要漏掉wget后面的空格,按回车继续

PHP入门之环境搭建(二)

获取安装包

2.解压安装包,输入 tar zxvf lanmp_v3.2.tar.gz,按回车继续。

3.安装WDCP,输入lanmp.sh,按回车,选择需要安装的环境,这里我们选择4,安装全部服务。

PHP入门之环境搭建(二)

4.由于是源码编译安装,速度较慢,大概需要半个小时完成安装。

PHP入门之环境搭建(二)

5.浏览器访问ip:8080即可访问WDCP控制面板。默认用户名admin,密码wdlinux.cn。

PHP入门之环境搭建(二)

6.WDCP首页

PHP入门之环境搭建(二)

有没有觉得WDCP界面有点跟不上时代,看上去像是10多年前的设计?其实确实是10年前的设计,WDCP到目前3.2.13版本就没有针对界面进行太大的改动。不过没关系,近期WDCP将会对界面进行大改,基本效果如下图所示,部分配色和内容还会有所修改,最终版本要看作者的喜好了。

PHP入门之环境搭建(二)

WDCP新界面预览

(我为什么会这么清楚?偷偷告诉你们,这套UI是由小编完全负责开发的,原作者负责后端适配,什么?不信?不信我也没办法)

在Windows上搭建PHP环境

想要学习PHP开发,首当其冲的当然是环境的搭建。今天我要和大家分享的是WANMP(Windows、Apache、Nginx、MySQL、PHP)环境的搭建。

PHP入门之环境搭建(一)

  • PHP环境搭建

Windows下安装开发环境是比较轻松的,因为大家可能最熟悉的操作系统就是Windows。界面操作可以免去很多命令和权限,我们需要做的仅仅是把安装包准备好,然后安装就可以了。

对于新手而言,自己手动搭建环境是比较吃力的,所以我会优先介绍一键安装包的安装。当然有时候一键安装包可能无法满足部分人的需要,我也会介绍手动搭建环境的方法。我个人经常会使用的是phpStudy,下面我向大家介绍phpStudy环境包的安装和使用教程。

首先打开phpStudy安装包,将phpStudy安装到任意位置。(phpstudy下载地址

PHP入门之环境搭建(一)

安装完成后,打开phpStudy主界面,如有更新点击更新即可,然后直接点击启动按钮,即可启动默认的PHP5.4.45+Apache+MySQL环境。

PHP入门之环境搭建(一)

由于Windows安全机制,首次启动mysqld和apache服务会提示安全警报,点击允许即可。PHP入门之环境搭建(一)

点击其他选项菜单,选择查看phpinfo,此时浏览器打开phpinfo页面。

PHP入门之环境搭建(一)

phpinfo页面。

PHP入门之环境搭建(一)

虽然默认状态已经可以正常使用了,但是如果点击切换版本,将环境切换到其他组合的时候,可能会提示“无法启动此程序,因为计算机中丢失msvcr100.dll”(忘了截图了)。

PHP入门之环境搭建(一)

如果出现此提示,安装下面的Visual C++ Redistributable 2012即可(注意32位和64位,VC++2012下载地址

PHP入门之环境搭建(一)

安装完成后重新启动phpStudy,切换环境后,再次查看phpinfo,便可以成功切换环境了。

PHP入门之环境搭建(一)

至此,使用phpStudy一键安装包安装PHP环境的教程到此结束,千里之行始于足下,这是学习开始的第一步。

组合比较运算符

组合比较运算符,英文叫作combined comparison operator,符号为<=>,它有一个形象的名字,叫作太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
语法是这样的:$c = $a <=> $b;
这句代码的意思是

  • 如果$a > $b, $c 的值为1
  • 如果$a == $b, $c 的值为0
  • 如果$a < $b, $c 的值为-1

在没有太空船运算符的时候,我们只能这样写代码

$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );

或者用if else条件语句,但是要写得更多

sublime text 3 3143注册码

—– BEGIN LICENSE —–
TwitterInc
200 User License
EA7E-890007
1D77F72E 390CDD93 4DCBA022 FAF60790
61AA12C0 A37081C5 D0316412 4584D136
94D7F7D4 95BC8C1C 527DA828 560BB037
D1EDDD8C AE7B379F 50C9D69D B35179EF
2FE898C4 8E4277A8 555CE714 E1FB0E43
D5D52613 C3D12E98 BC49967F 7652EED2
9D2D2E61 67610860 6D338B72 5CF95C69
E36B85CC 84991F19 7575D828 470A92AB
—— END LICENSE ——

对二维数组根据某个键值排序


/**对二维数组根据某个键值排序
*$array 排序的数组
*$key 要根据排序的值
*$order 升序还是降序 asc升序 desc降序
**/
public function array_sort($array,$key,$order){
$arr_nums=$arr=array();
foreach($array as $k=>$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else if( $order=='desc'){
arsort($arr_nums);
}
foreach($arr_nums as $k=>$v){
$arr[$k]=$array[$k];
}
return $arr;
}
//调用方法
$array = array(
0 => array( 'id' => 1, 'name' => '北京' ),
1 => array( 'id' => 2, 'name' => '北京' ),
2 => array( 'id' => 3, 'name' => '北京' ),
);
$arrOrder = $this->array_sort($array,'id','order_desc'); print_r($arrOrder);

aria2 jsonrpc接口列表

  1. aria2.addUri([secret, ]uris[, options[, position]])//添加链接任务
  2. aria2.addTorrent([secret, ]torrent[, uris[, options[, position]]])//添加种子任务
  3. aria2.addMetalink([secret, ]metalink[, options[, position]])//添加磁链任务
  4. aria2.remove([secret, ]gid)//删除任务
  5. aria2.forceRemove([secret, ]gid)//强制删除任务
  6. aria2.pause([secret, ]gid)//暂停任务
  7. aria2.pauseAll([secret])//暂停全部任务
  8. aria2.forcePause([secret, ]gid)//强制暂停任务
  9. aria2.forcePauseAll([secret])//强制暂停全部任务
  10. aria2.unpause([secret, ]gid)//继续任务
  11. aria2.unpauseAll([secret])//继续全部任务
  12. aria2.tellStatus([secret, ]gid[, keys])//获取任务状态
  13. aria2.getUris([secret, ]gid)//获取任务链接
  14. aria2.getFiles([secret, ]gid)//获取任务文件
  15. aria2.getPeers([secret, ]gid)//获取任务P2P列表
  16. aria2.getServers([secret, ]gid)//获取任务服务器列表
  17. aria2.tellActive([secret][, keys])//获取下载中任务
  18. aria2.tellWaiting([secret, ]offset, num[, keys])//获取等待中任务(包括暂停中)
  19. aria2.tellStopped([secret, ]offset, num[, keys])//获取已停止任务
  20. aria2.changePosition([secret, ]gid, pos, how)//调整任务位置
  21. aria2.changeUri([secret, ]gid, fileIndex, delUris, addUris[, position])//修改任务链接
  22. aria2.getOption([secret, ]gid)//获取任务设置
  23. aria2.changeOption([secret, ]gid, options)//修改任务设置
  24. aria2.getGlobalOption([secret])//获取全局设置
  25. aria2.changeGlobalOption([secret, ]options)//修改全局设置
  26. aria2.getGlobalStat([secret])//获取全局统计信息
  27. aria2.purgeDownloadResult([secret])//清除全部已完成、错误、已删除的任务
  28. aria2.removeDownloadResult([secret, ]gid)//删除指定已完成、错误、已删除的任务
  29. aria2.getVersion([secret])//获取aria2版本
  30. aria2.getSessionInfo([secret])//获取会话信息(暂时不知道干啥的)
  31. aria2.shutdown([secret])//退出aria2
  32. aria2.forceShutdown([secret])//强制退出aria2
  33. aria2.saveSession([secret])//保存会话信息
  34. system.multicall(methods)//请求多个任务
  35. system.listMethods()//方法列表
  36. system.listNotifications()//通知列表

下面是触发通知的方法

  1. aria2.onDownloadStart(event)//下载开始时
  2. aria2.onDownloadPause(event)//下载暂停时
  3. aria2.onDownloadStop(event)//下载停止时
  4. aria2.onDownloadComplete(event)//下载完成时
  5. aria2.onDownloadError(event)//下载错误时
  6. aria2.onBtDownloadComplete(event)//种子下载完成时