PHP开发搭建环境二:开发工具PhpStorm安装、激活以及配置
2024-08-27 06:27:38
关于php的开发工具很多,目前市面上最好用最强大的莫过于PhpStorm这款开发神器了,但是鉴于很多开发者朋友在网站上下载的PhpStorm开发工具不能用,或者使用起来很不方便,笔者把最好用的下载地址及免费激活教程共享出来。
一、安装并配置集成环境XAMPP
具体可以参考我的这篇博客:PHP开发环境搭建一:PHP集成环境XAMPP 的安装与配置
二、下载安装并破解PhpStorm
1. 点击这里下载PhpStorm-2017.3.4.exe 的Windows版本。提取密码: myye。
下载完成后,直接进行安装,安装过程很简单。
2. 注册免费激活
首先,需要修改本地的hosts文件(路径一般为C:\Windows\System32\drivers\etc\hosts),添加下面这行代码。
0.0.0.0 account.jetbrains.com
保存即可。目的是为了避免PhpStorm联网注册时失败。
其次,直接用浏览器打开 http://idea.lanyus.com/ ,点击页面中的 获得注册码 ,拷贝激活码。
最后,运行PhpStorm-2017.3,在激活界面,切换至Activation Code选项,粘贴刚刚拷贝的激活码,点击激活即可。
3.配置PhpStorm
3.1.Setting中配置Interpreter
3.2.添加本地Interpreter Path
3.3.选择PHP解释器(php.exe)的安装目录
这个安装目录在XAMPP的安装目录下的\php\php.exe这里。
点击OK配置完毕。
4.测试一下
4.1.新建一个calendar.class.php日历类
<?php
class Calendar {
private $year; //当前的年
private $month; //当前的月
private $start_weekday; //当月的第一天对应的是周几
private $days; //当前月一共多少天
function __construct(){
$this->year=isset($_GET["year"]) ? $_GET["year"] : date("Y");
$this->month=isset($_GET["month"]) ? $_GET["month"] : date("m"); $this->start_weekday=date("w", mktime(, , , $this->month, , $this->year));
$this->days=date("t", mktime(, , , $this->month, , $this->year));
}
function out(){
echo '<table align="center">';
$this->chageDate("test.php");
$this->weeksList();
$this->daysList();
echo '</table>';
}
private function weeksList(){
$week=array('日','一','二','三','四','五','六');
echo '<tr>';
for($i=; $i<count($week); $i++)
echo '<th class="fontb">'.$week[$i].'</th>';
echo '</tr>';
}
private function daysList(){
echo '<tr>';
//输出空格(当前一月第一天前面要空出来)
for($j=; $j<$this->start_weekday; $j++)
echo '<td> </td>'; for($k=; $k<=$this->days; $k++){
$j++;
if($k==date('d'))
echo '<td class="fontb">'.$k.'</td>';
else
echo '<td>'.$k.'</td>';
if($j%==)
echo '</tr><tr>'; }
//后面几个空格
while($j%!==){
echo '<td> </td>';
$j++;
}
echo '</tr>';
}
private function prevYear($year, $month){
$year=$year-; if($year < )
$year = ;
return "year={$year}&month={$month}";
} private function prevMonth($year, $month){
if($month == ) {
$year = $year -; if($year < )
$year = ;
$month=;
}else{
$month--;
}
return "year={$year}&month={$month}";
} private function nextYear($year, $month){
$year = $year + ;
if($year > )
$year = ;
return "year={$year}&month={$month}";
} private function nextMonth($year, $month){
if($month==){
$year++;
if($year > )
$year=;
$month=;
}else{
$month++;
} return "year={$year}&month={$month}";
}
private function chageDate($url=""){
echo '<tr>';
echo '<td><a href="?'.$this->prevYear($this->year, $this->month).'">'.'<<'.'</a></td>';
echo '<td><a href="?'.$this->prevMonth($this->year, $this->month).'">'.'<'.'</a></td>';
echo '<td colspan="3">';
echo '<form>';
echo '<select name="year" onchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&month='.$this->month.'\'">';
for($sy=; $sy <= ; $sy++){
$selected = ($sy==$this->year) ? "selected" : "";
echo '<option '.$selected.' value="'.$sy.'">'.$sy.'</option>';
}
echo '</select>';
echo '<select name="month" onchange="window.location=\''.$url.'?year='.$this->year.'&month=\'+this.options[selectedIndex].value">';
for($sm=; $sm<=; $sm++){
$selected1 = ($sm==$this->month) ? "selected" : "";
echo '<option '.$selected1.' value="'.$sm.'">'.$sm.'</option>';
}
echo '</select>';
echo '</form>';
echo '</td>'; echo '<td><a href="?'.$this->nextYear($this->year, $this->month).'">'.'>>'.'</a></td>';
echo '<td><a href="?'.$this->nextMonth($this->year, $this->month).'">'.'>'.'</a></td>';
echo '</tr>';
}
}
?>
4.2.新建一个test.php测试类
<style>
table {
border:1px solid #;
}
.fontb {
color:white;
background:blue;
} th {
width:30px;
}
td,th {
height:30px;
text-align:center; }
form {
margin:0px;
padding:0px;
}
</style>
<?php
include "calendar.class.php";
$calendar=new Calendar;
$calendar->out();
?>
4.3.点击右上角的浏览器
有问题的联系笔者电话微信18629374628,欢迎交流
最新文章
- Flask 的 Context 机制
- Windows10
- usb驱动开发14之设备生命线
- JQuery实现click事件绑定与触发方法分析
- 形状特征提取-Hu不变矩(转载)
- 只用css来美化的上传表单按钮(抄的迅雷的)
- [工作记录] Android OpenGL ES 2.0: square texture not supported on some device
- UVA 11134 - Fabled Rooks(贪心+优先队列)
- HTML5 canvas 绘制五星红旗
- Cookie的简单使用
- volatile可见性的一些认识
- linux下ruby使用tcl/tk编程环境设置
- Android jks 签名文件 生成
- 视觉显著性检测(Visual saliency detection)相关概念
- python字典设置初始值setdefault()与get()
- rails常用gem
- 【2008-2009 ICPC NEERC D】Deposits(暴力)
- Redis高可用详解:持久化技术及方案选择 (推荐)--转载自编程迷思博客www.cnblogs.com/kismetv/p/8654978.html
- Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL
- Python处理验证码第一篇(pytesser初探及报错处理)
热门文章
- ThinkPHP find大坑 不要随便用
- MVC中的验证码
- Java基础入门 - 关键字及其分类和说明
- maven课程 项目管理利器-maven 2-2第一个maven案例hellomaven
- 自写Jq动画载入插件
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码
- android ContentProvider共享数据
- (转)轻松解决 MyEclipse、Eclipse 编译时提示 @Override The method of type must override a superclass method 即 @Override 标注问题
- centos7 gearmand-1.1.15打包rpm
- Redis 基础概念和命令