PhpStorm配置less自动编译css
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。作为 CSS 的一种扩展,Less 不仅完全兼容 CSS 语法,而且连新增的特性也是使用 CSS 语法。这样的设计使得学习 Less 很轻松,而且你可以在任何时候回退到 CSS...
less中文网:less中文网
nodejs下载:nodejs
less使用可作为参考;
phpstorm配置支持less需要使用npm命令;
需要安装nodejs
本文在windows和mac下进行测试;
点此nodejs下载,找到自己对应的版本;
点击下载;
按照提示一步一步安装即可;
在终端运行:
ps:以上命令操作你都可以在less中文网中找得到
然后重启编辑器;
如果不能正常运行以下步骤,那就重启电脑;
windows打开设置【setting】
mac找到首选项【Preferences】
打开之后,在左上角搜索框输入:file Watchers
new watcher对话框
之后会弹出new watcher对话框
点击ok
再点ok,把对话框全点没了;
然后你就可以新建文件index.less进行测试
如果新建文件上部弹出提示消息;
那就点击Add watcher添加监听;
每次书写,ctrl+s保存会自动编译css
【本文来自 武斌博客 http://www.wubin.pro,为超人原创文章,想获取更好的页面浏览效果或者有任何问题请进入博客,同时也可在博主评论区进行留言,让博主为大家答疑解惑~】
果你说PHP编程用基础的文本编辑软件就可以了,比如用记事本。是的,这对于业余爱好者来说绝对可以。但选择一款功能丰富而完整的开发软件还是要好一些,尤其是专业开发者更有必要。这些软件如:NetBeans, PHPStorm, VIM, Zend Studio, Cloud9或Atom。
好的开发工具富有特点而且能够帮助开发者快速高效地编辑程序,它是开发者的基本需求,磨刀不误砍柴工,提前花点时间选择一款适合的开发软件是为上策。
那选择哪一款呢, 这个问题要看你的需求、偏好和预算。 选定一款之前试用几个也不错。
大量PHP开发软件支持跨平台系统,能用于Windows,Linux和Mac,而且提供免费下载。 对于初学者,我的建议是,你可以随意选择一款免费的,可用就行。 比如:NetBeans,VIM,Atom或Eclipse PDT。
企业和专业开发者可以用这些免费的开发软件完成程序编辑,但同时也有很多收费的平台因为整合了很多最新和更进步的功能特性而备受企业开发者的青睐。随便举几个,比如:PHPStorm, Sublime Text, Zend Studio, Nusphere, PHPED, PHP Designer和 Cloud 9等。
假如你只是想用PHP做简单的应用而非构架一整个系统,那么你也可以试一试那些线上的PHP开发工具,比如说PHPfiddle.com。 更简单的你可以选用witephponline.com和ideone.com。
好了,那让我们来看一下被全世界开发者们公认的10个优秀的开发工具吧。它们功能丰富,广为流传,最为先进而且备受喜爱。
1. NetBeans - 最好的PHP IDE (免费版本)
NetBeans是供普通大众使用的PHP IDE,它功能丰富、免费并且支持多国语言,其中包括英语、日语、俄语、巴西葡萄牙语以及简体中文。NetBeans的免费版本的发布日期要回溯到2010年,Sun Microsystems开始将其作为开源项目发展,后来Sun Microsystems成为了Oracle的子公司。
自发布以来,NetBeans的下载次数已超过1800万次,同时拥有一个最大的致力于开源集成开发环境的开发者社区。
过去,NetBeans的用途很少,只能进行Java开发,但现在,这样的日子一去不复返了,NetBeans目前的稳定版是轻量级的、速度更快并且全面支持PHP。对于像Zend、Doctrine、 Smarty和Symfony2一类的流行PHP框架以及像Yii、CakePHP、 FuelPHP和Wordpress CMS一类的其它框架提供了开箱即用的支持,也通过laravel-ide-helper提供了对Laravel框架的开箱即用支持。
让NetBeans位居榜首的关键特性是拥有很多代码生成工具,像getter setter生成、代码模板、智能代码补全、提示、快速修复和重构等。另外还支持一些基本特性,包括代码折叠和格式化、try/catch代码补全以及矩形选区等。
当进入调试阶段时,你可以在本地或者远程使用命令行或者xDebug。NetBeans PHP编辑器对包括 javascript、HTML和CSS等web开发都提供了开箱即用的支持。所有这些特性轻而易举地使得NetBeans成为最好的开源PHP IDE。
阅读更多有关NetBeans的内容请访问官方网站netbeans.org。
2. PHPStorm- 最好的PHP IDE (商业版本)
PHPStorm 是全功能的PHP IDE,其拥有最现代化的功能集可以快速便捷的进行网页开发。它由名叫JetBrains的公司开发并销售。 在过去的15年中,在开发工具的市场中JetBrains是最受人喜爱的公司,它使得编写代码更加的轻松和愉快。
PHPStorm 很好的支持主要的框架比如Symfony, Zend Framework, Yii, CakePHP, Laravel以及主要的CMS系统如Drupal, Magento 和Wordpress。
不是所有的Web开发项目都没有前端技术,这也正是PHPStorm耀眼之处, 它几乎提供了所有前端技术的实时编辑功能比如CSS, Sass, HTML5, CoffeeScript, TypeScript, JavaScript, Stylus, Less等等。同时还支持代码重构,调试和单元测试。
从发工具方面来说,它提供了版本控制系统,sql数据库,composer, 远程部署,vagrant,其他的客户端,命令行工具等诸如此类的功能。
从调试的角度来说,它支持Zend Debugger和Xdebug,也同时支持本地的或远程的。
PHPStorm是企业级IDE, 需要授权费用,主要的目标是专业的开发人员,但是它同时为教师,学生或开源的项目免费提供。
PHPStorm的普及程度可以从一个事实来衡量,就是众多的大公司如Expedia,Yahoo, Cisco, Salesforce 和wikipedia都曾有购买过PHPStorm IDE的授权。
你可以在以下地址下载PHPStorm试用版 (免费30天) – Download PHPStorm trial version.
你想了解更多的PHPStom请登录官网 – jetbrains.com/phpstorm.
3. Sublime Text 3 / PHP IDE
Sublime Text 3 是我最喜欢的一个,也是候选的最强文本编辑器。它轻量级,拥有丰富的特性,还支持在Windows,OSX 和 Linux 上运行。 Sublime text 编辑器变得强大是通过插件和包来实现的。
有许多 PHP 的外部包可以使用,这些包可以帮助这个优雅的编辑器变成一个优雅的 Sublime PHP IDE。为了实现这个目的需要一些有用的包和一些著名的包——package control,Sublime PHP companion, xDebug client——CodeBug, PHPCS, CodIntel, Simple PHPUnit 和 PHPDoc。
一旦你安装 sublime text 3 作为 PHP IDE ,它会帮助你添加包,你获得的 sublime text 是优雅的,在这里它让你的 PHP 变得强有力,它对于 PHP 开发绝对好用。
关于 Sublime Text,你可以在这里(sublimetext.com)读到更多。
4. Eclipse PDT
Eclipse PDT (PHP Development Tools)是另一款无需任何花费的开源选择。 Eclipse拥有一个庞大的开发者社区致力于开发各种各样的插件,使Eclipse能够具备任何一款如Storms PHP, NetBeans和Zend studio等顶级的开发IDE一样功能。
相比较与商业的IDE,刚开始时需要多做一些工作,但相较于你省下的钱一切都是值得的。与PHPStorm和Zend Studio相较,Eclipse PDT节省授权费是一个很大的优势。如果你是传统的Eclipse爱好者,使用Eclipse PDT会使你感觉很自在。
有的人会说Eclipse会很慢,说实话如果你的系统配置很烂,商业化的产品相较于Eclipse会表现得更好。然而,现在基本的笔记本配置已经能够让Eclipse足够快的运行而不拖你的后腿。
一些关键的特性包括: 语法高亮(syntax highlighting), 代码补齐(code assist), 代码格式化(code formatter), 重构(refactoring), 代码模版(code templates), 代码导航(code navigation), php调试(php debugging), 语法检查(syntax validation) 并且拥有一个庞大的社区的eclipse生态系统来支持它。
开始使用时,你可以下载专用于PHP开发的Eclipse包,它包含了PHP语言支持,XML编辑器,Git客户端和 Mylyn。
软件能够在Mac OS X, Windows 和 Linux系统下下载并使用。你可以了解更多关于Eclipse PDT尽在- eclipse.org/pdt/。
5. VIM
VIM 是在GPL授权下,可以免费下载并使用的开源文本编辑器。它是最先进的文本编辑器之一并且在开发社区内非常的流行。Facebook的工程师在使用自己的Hack语言之前,一直都是使用VIM来编写他们的PHP代码。
我们知道VIM作为一款优秀文本编辑器具有众多的特性,但当你仔细的配置完成后,它提供了不亚于完全成熟的 PHP 开发环境以适用于你的PHP开发。
如果你是只喜欢用键盘来工作的开发者, VIM就很适合你,它模块化,轻量并且快速。
要找一款 Linux下的PHP IDE,VIM 就是你要找的并且它的理念与Sublime Text 3相似, VIM也需要插件来转化成像 PHPStorm 或Netbeans一样的IDE, 最开始你需要花费大量的工作来配置大量的插件,但在最后成功后你会发现一切都是值得的。
VIM显然应该被算做是一款免费的PHP IDE。 你可以在 vim.org上了解更多!
6. Zend Studio
Zend Studio是另一款一流的由Zend公司开发的商用PHP IDE,其目标是成为专业的web开发工具。
Zend公司提供了对PHP的全方位支持,其中任何一件产品都有助于使PHP开发变得轻而易举,该公司拥有的客户数量超过40000。其中一些重要客户包括敦豪速递公司、瑞士信贷、法国巴黎银行和安捷伦科技公司。
Windows、 OS X和Linux均提供了对Zend Studio的支持,并且兼容包括PHP7在内的最新PHP版本。Zend Studio的用户界面很直观,并且提供了大量的现代化功能和工具,通常有助于加速PHP和web的开发进程。其中一些关键功能包括-
Zend提供了一个有趣而且强大的功能,即支持在现有的PHP应用程序和服务器端进行移动app开发。当要对已有的网站和web app、mobile app进行补充开发时,这个功能就很有用。
要阅读更多有关Zend Studio的内容可访问- Zend Studio for PHP。
7. Atom
Atom是由GitHub人员建立在MIT授权下的免费的现代化的文本编辑器。Atom在其巨大的社区内形成了自己的生态系统,并且拥有众多可用的插件和包来扩展和定义它。
Atom是真正可定制的,也就是说用它的可扩展性和高定制性你可以把它变成你梦想的编辑器。此外,它也是真正的跨平台下的很好选择,它同时支持Windows, OS X, Debian Linux (Ubuntu), Red Hat Linux and Fedora 22+。
如何让Atom变成免费的PHP IDE?
当涉及到PHP时,有很多的可用包可以把Atom编辑器变成全功能的PHP IDE,它不仅仅是免费,更是一款不亚于很多的商业性的PHP IDE。
把atom编辑器变成一款全功能的免费的PHP IDE所涉及到的包有:hyperclick-php, php-cs-fixer, php-integrator-base, linter-php, atom-autocomplete-php等等。这里仅举几个例子。你可以在Github上查看全部的所需清单 -> https://atom.io/packages/search?q=php
想要了解更多请查看atom.io。
8. NuSphere
NuSphere是另一款致力于PHP开发工具的公司,它侧重于网页开发的体验,PHPED是他们提供的IDE产品。
这家公司位于美国内达华州里诺市,它的第一个PHPED的版本发布于PHP刚发展起来的2001年。
而它的最新的版本IDE产品则支持PHP 7以及众多的PHP框架,包括 Laravel, Yii, Symfony等。同时还支持内容管理系统(Content management systems)中的Joomla 和 Wordpress。其最新版增加的功能还有支持远行本地和远程项目的测试单元。
总的来说,NuSphere的PHPED是一款全功能的网站开发工具,并包含了JavaScript调试, 带有LESS的CSS预处理, HTML5,当然还有与PHP相关的所有内容。
即便如此,我还是认为在商业领域Zend和PHPStorm比NuSphere更加的优雅,拥有更好的客户支持,更好的文档以及发布管理。
要了解更多关于NuSphere请参考 - nusphere.com.
CodeLobster
有另一款物美价廉的产品叫做CodeLobster与NuSphere可以说是势均力敌。在最近的更新中, CodeLobster走的很激进, 目前它几乎支持了所有的PHP产品包括Twig templates, Drupal, Joomla, wordpress, Yii, Symfony, Laravel, AngularJs, jQuery, Phalcon, smarty, CodeIgniter, CakePHP 以及nodejs。
要了解更多关于NuSphere请参考 - codelobster.com.
9.PHP Designer
PHP Designer是另一个好用的IDE,它能帮助我们加快web开发的工作流程,并提供了对PHP、JavaScript、CSS和HTML的内置支持。该PHP IDE仅供Windows用户使用,如果你使用的是Mac、Linux这类的操作系统,就忽略它吧。
要阅读更多有关PHP Designer的内容可访问PHP Designer。
10.Cloud9-最好的PHP云IDE
Cloud 9是一个支持几乎所有编程语言的云IDE。在基于云的编程环境中,没有任何一个云IDE能在功能和知名度方面和Cloud9相媲美。它提供了内置的PHP调试器,可用来进行实时的代码检查。
开始时,你可以使用其免费版本,在该版本中,你能获得一个免费的公共空间和免费的私有空间,如要进一步学习,就要购买一个Cloud9的商业版。
要阅读更过有关Cloud9的内容可访问cloud9。
结 论
PHP是web开发所使用的最流行、最全面的编程语言,从一开始就有很多PHP IDE可以使用,发展到今天,程序设计方法和PHP IDE都有了翻天覆地的变化。
本文中提到的大部分IDE都有各自不同的特点,但共同的目标是加快web开发的进度,并使得代码可管理和可扩展。仔细看一看,文中列出了一些你的关键需求,你可以从中选择最适合你的需求,肯定至少有一个优秀的Linux系统下的PHP IDE、Mac系统下的PHP IDE和Windows系统下的PHP IDE。
通过你的评论,让我们了解你在PHP编程中的体验和适合你的最佳PHP IDE。
http://www.phpjiami.com/
据说“加密效果同行最高”?
到 http://www.phpjiami.com/phpjiami.html 随意上传一个 php 文件,然后下载加密后的文件,这就是我们要解密的文件。
先看看加密后的文件
可以看出这是一个正常的 php 文件,只不过所有的变量名都是乱码,还真亏了 php 引擎支持任意字符集的变量名,这个加密后的文件变量名的字节部都在 ASCII 范围以外,全是 0x80以上的字符。
我们看到中间有一个 php 代码段结束标签 ?>,而他的前面还有一个 return $xxx;来结束脚本运行,这说明结束标签后面的数据都不会被正常输出,后面极可能是源文件加密后的数据,而前面的 php 代码只是用来解密的。
这里使用的 IDE 是 VSCode(最开始我使用的是 PHPStorm,后来我发现 VSCode的效果更好)。首先,安装 PHP Debug 插件。
然后,按照 https://xdebug.org/docs/install 的说明安装 XDebug插件。
注意:运行未知的 php 代码还是很危险的,最好能在虚拟机上运行,真机上一定要保证你的 XDebug和 PHP Debug调试插件可以正常下断点。断开网络。最好同时打开任务管理器,一旦发生未知现象(比如 CPU 占用率或磁盘占用率),或者调试断点没断下来,或者出现某些问题,立刻结束 php 进程。
代码格式化
这个代码太乱了,我们需要格式化一下代码。
最开始我用的是 PHPStorm 自带的代码格式化,格式化之后数据变了,PHPStorm 对未知字符集的支持还是比较差的。
然后我就想对 php 文件的 AST (Abstract Syntax Tree 抽象语法树)进行分析,看能不能顺便把变量名都改成可显示字符。后来想想似乎不行,因为这种代码肯定是带 eval 的,改了变量名之后,eval 的字符串中的变量名就对应不上了。
我找到了这个工具:https://github.com/nikic/PHP-Parser
首先 composer require nikic/php-parser。
然后将下列代码保存到一个文件中(比如 format.php),读取下载下来的 1.php,把格式化之后的代码写入 2.php。
然后,执行 php format.php。
使用这个方法格式化的 php 文件内容并没有被损坏,我们可以继续分析了。
如果,还不行,那就只能用十六进制编辑器查找 ; 和 } 手动替换了,添加 \r\n 了。
最前面这两行我们得先注释掉,不然出了什么错误的话会莫名其妙的。
error_reporting(0);
ini_set("display_errors", 0);
保存。然后完蛋了,代码又乱了。
我们需要一个支持非可显示字符的编辑器,或者...更改显示编码,选择一个不是多字节的字符集,比如 Western (ISO 8859-1)
现在,开始我们的调试。
在第一行下断点。执行 php 2.php运行程序。然后单步调试,一边执行,一边注意变量的值,分析函数的执行流程。
使用 VSCode的调试功能,我们可以方便的查看变量的具体内容。
单步调试到这一行,似乎有些不对劲。
php_sapi_name()=='cli' ? die() : '';
我们用命令行运行的,所以执行完这一句,肯定程序就结束了。
那就让他结束吧,我们把这一行注释掉,在他下面下断点。重新运行程序。
下面这行是就是读取当前文件,这句话没有什么问题。
$f=file_get_contents(constant('rnfzwpch'));
然后就又是验证运行环境。
if(!isset($_SERVER['HTTP_HOST']) !isset($_SERVER['SERVER_ADDR']) && !isset($_SERVER['REMOTE_ADDR'])) {
die();
}
注释掉,保存,重新运行。
当然,也可以通过调试控制台,执行类似 $_SERVER['HTTP_HOST']='127.0.0.1'; 这类指令,来让验证通过。
再看下面的代码,我想到 exe 反调试了,不得不佩服想这个方法的人。防止下断点调试的,如果下断点调试,这里就超过 100 毫秒了。
$t=microtime(true) * 1000;eval("");if (microtime(true) * 1000 - $t > 100) {
die();
}
我们直接在这条语句之后下断点,让他们一连串执行完,这样就不会超过 100 毫秒了。当然,直接注释掉是最粗暴的方法。
下面的 eval我们需要通过“单步进入”来研究,不过结果是对我们的影响不大,当然注释掉也没问题。
接下来这个就是校验数据完整性的了
!strpos(decode_func(substr($f, -45, -1)), md5(substr($f, 0, -46))) ? $undefined1() : $undefined2;
这里的$undefined1和 $undefined2都没有定义。如果验证失败,就会调用 $undefined1会直接 Error退出程序。而如果验证成功,虽然 $undefined2变量不存在,但是只是一个 Warning,并没有太大问题。decode_func就是文件中最后一个函数,专门负责字符串解码的。
这个验证方法就是把文件尾部分解密和前面的文件主体部分的 md5 对比,这次执行肯定又不能通过。
退出程序,注释掉,再重新运行。
$decrypted=str_rot13(@gzuncompress(decode_func(substr($f, -2358, -46))));
我们找到了这个解码的关键语句了,可以看到解密之后的代码已经出来了。
到了代码的最后,终于要执行脚本了。
$f_varname='_f_';$decrypted=check_and_decrypt(${$f_varname});
set_include_path(dirname(${$f_varname}));$base64_encoded_decrypted=base64_encode($decrypted);$eval_string='eval(base64_decode($base64_encoded_decrypted));';$result=eval($eval_string);
set_include_path(dirname(${$f_varname}));return $result;
折腾了半天,还是 eval语句。如何把内容输出呢。直接在 $decrypted后面加上一行 file_put_contents就可以了。
我们可以继续分析一下他的解密算法
算法是固定的,只是其中内联了一个秘钥,我们只要通过字符串函数截取出这个秘钥就可以了。
这个程序可以解密此网站全部免费加密的代码。
使用方法:php decrypt.php 1.php
php 这种动态解释语言还想加密?做梦去吧。不过混淆还是有可能的。
这个代码中的暗桩挺有意思,算是学到了点知识。
php 这种东西为什么要加密?php 的开源社区多么庞大。
代码赏析
*请认真填写需求信息,我们会在24小时内与您取得联系。