1.安装XAMPP

2.安装并破解PhpStorm

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日历类

  1. <?php
  2. class Calendar {
  3. private $year; //当前的年
  4. private $month; //当前的月
  5. private $start_weekday; //当月的第一天对应的是周几
  6. private $days; //当前月一共多少天
  7. function __construct(){
  8. $this->year=isset($_GET["year"]) ? $_GET["year"] : date("Y");
  9. $this->month=isset($_GET["month"]) ? $_GET["month"] : date("m");
  10.  
  11. $this->start_weekday=date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
  12. $this->days=date("t", mktime(0, 0, 0, $this->month, 1, $this->year));
  13. }
  14. function out(){
  15. echo '<table align="center">';
  16. $this->chageDate("test.php");
  17. $this->weeksList();
  18. $this->daysList();
  19. echo '</table>';
  20. }
  21. private function weeksList(){
  22. $week=array('日','一','二','三','四','五','六');
  23. echo '<tr>';
  24. for($i=0; $i<count($week); $i++)
  25. echo '<th class="fontb">'.$week[$i].'</th>';
  26. echo '</tr>';
  27. }
  28. private function daysList(){
  29. echo '<tr>';
  30. //输出空格(当前一月第一天前面要空出来)
  31. for($j=0; $j<$this->start_weekday; $j++)
  32. echo '<td> </td>';
  33.  
  34. for($k=1; $k<=$this->days; $k++){
  35. $j++;
  36. if($k==date('d'))
  37. echo '<td class="fontb">'.$k.'</td>';
  38. else
  39. echo '<td>'.$k.'</td>';
  40. if($j%7==0)
  41. echo '</tr><tr>';
  42.  
  43. }
  44. //后面几个空格
  45. while($j%7!==0){
  46. echo '<td> </td>';
  47. $j++;
  48. }
  49. echo '</tr>';
  50. }
  51. private function prevYear($year, $month){
  52. $year=$year-1;
  53.  
  54. if($year < 1970)
  55. $year = 1970;
  56. return "year={$year}&month={$month}";
  57. }
  58.  
  59. private function prevMonth($year, $month){
  60. if($month == 1) {
  61. $year = $year -1;
  62.  
  63. if($year < 1970)
  64. $year = 1970;
  65. $month=12;
  66. }else{
  67. $month--;
  68. }
  69. return "year={$year}&month={$month}";
  70. }
  71.  
  72. private function nextYear($year, $month){
  73. $year = $year + 1;
  74. if($year > 2038)
  75. $year = 2038;
  76. return "year={$year}&month={$month}";
  77. }
  78.  
  79. private function nextMonth($year, $month){
  80. if($month==12){
  81. $year++;
  82. if($year > 2100)
  83. $year=2100;
  84. $month=1;
  85. }else{
  86. $month++;
  87. }
  88.  
  89. return "year={$year}&month={$month}";
  90. }
  91. private function chageDate($url=""){
  92. echo '<tr>';
  93. echo '<td><a href="?'.$this->prevYear($this->year, $this->month).'">'.'<<'.'</a></td>';
  94. echo '<td><a href="?'.$this->prevMonth($this->year, $this->month).'">'.'<'.'</a></td>';
  95. echo '<td colspan="3">';
  96. echo '<form>';
  97. echo '<select name="year" onchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&month='.$this->month.'\'">';
  98. for($sy=1970; $sy <= 2100; $sy++){
  99. $selected = ($sy==$this->year) ? "selected" : "";
  100. echo '<option '.$selected.' value="'.$sy.'">'.$sy.'</option>';
  101. }
  102. echo '</select>';
  103. echo '<select name="month" onchange="window.location=\''.$url.'?year='.$this->year.'&month=\'+this.options[selectedIndex].value">';
  104. for($sm=1; $sm<=12; $sm++){
  105. $selected1 = ($sm==$this->month) ? "selected" : "";
  106. echo '<option '.$selected1.' value="'.$sm.'">'.$sm.'</option>';
  107. }
  108. echo '</select>';
  109. echo '</form>';
  110. echo '</td>';
  111.  
  112. echo '<td><a href="?'.$this->nextYear($this->year, $this->month).'">'.'>>'.'</a></td>';
  113. echo '<td><a href="?'.$this->nextMonth($this->year, $this->month).'">'.'>'.'</a></td>';
  114. echo '</tr>';
  115. }
  116. }
  117. ?>

4.2.新建一个test.php测试类

  1. <style>
  2. table {
  3. border:1px solid #050;
  4. }
  5. .fontb {
  6. color:white;
  7. background:blue;
  8. }
  9.  
  10. th {
  11. width:30px;
  12. }
  13. td,th {
  14. height:30px;
  15. text-align:center;
  16.  
  17. }
  18. form {
  19. margin:0px;
  20. padding:0px;
  21. }
  22. </style>
  23. <?php
  24. include "calendar.class.php";
  25. $calendar=new Calendar;
  26. $calendar->out();
  27. ?>

4.3.点击右上角的浏览器

  

  当前时间没问题,左右翻页没问题。

  That's all.

安装好XAMPP+安装好PhpStorm 然后搭建PHP开发环境的更多相关文章

  1. 在 ubuntu18.04 中搭建 Django 开发环境

    在Ubuntu 18.04 安装 python3.pip3.pycharm,搭建 Django 开发环境. 1.安装 python3 pip3 sudo apt-get install python3 ...

  2. [转载]在Windows下搭建Android开发环境

    http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...

  3. 搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)

    ——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将 ...

  4. Java第一天:安装搭建Java开发环境

    Java是面向对象的语言.它是通过虚拟机的运行机制来实现“跨平台”的. 这里不多说其他的,进入正题先,学习任何语言前的第一步都是要先搭建好开发环境,Java开发环境搭建如下: 1.到官网 http:/ ...

  5. 苹果MAC中安装并搭建Android开发环境的详细步骤

    Android的开发平台搭建主要需要的工具有:Java虚拟机JDK.Eclipse.Eclipse插件ADT(Android Developer Tool)和Android开发包SDK,以下是具体的安 ...

  6. eclipse安装、汉化、搭建安卓开发环境

    1.eclipse与jdk的位数(32bit or 64bit )要对应,否则会提示Failed to load JNI shared library.提示这一种错误据说还有另外一种原因就是Path路 ...

  7. Sublime text 3搭建Python开发环境及常用插件安装 转载

    Sublime text 3搭建Python开发环境及常用插件安装 一.环境准备 1.官方网站地址 2.Windows 10 3.Sublime Text 3 + 官网购买license(Just a ...

  8. Linux下快速搭建php开发环境

    php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...

  9. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

随机推荐

  1. 转载:java基础之单例

    转载:https://blog.csdn.net/goodlixueyong/article/details/51935526 https://www.cnblogs.com/cielosun/p/6 ...

  2. C#对DataTable里数据排序的方法

    protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Ad ...

  3. 安装Window Server 2008的些配置

    上次安装window server2008,由于server2008需要设置很多东西,不然用起来很不爽,就说IE吧,每次随便打开一个网页都要弹出n多窗口出来叫你添加到信任域里面!太烦人了![下面有解决 ...

  4. Jquery的跨域调用

    JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念.当然,究其本质还是通过script标签动态加载js,似乎这是实现真正跨域的唯一方法. getJSON ...

  5. ARC下block使用情况

    ARC与MRC的block有着一些区别,笔记整理ARC的block,仅仅是自己参考的笔记,详情请参考 http://www.cnbluebox.com/?p=255 在开始之前,请新建一个Model类 ...

  6. Apache源码安装--httpd-2.2.34

    一.下载源码包 二.将源码包移动/usr/src/目录 三.解压源码包,并进入目录:tar -xzvf httpd-2.2.34.tar.gz,cd httpd-2.2.34 四.安装依赖包:yum ...

  7. qmake

    https://blog.csdn.net/m0_37876745/article/details/78537556

  8. IIS 7 反向代理 URL重写 转发动态请求

    一.反向代理是什么 有一篇文章说的挺好的 Nginx 反向代理.负载均衡.页面缓存.URL重写及读写分离详解 http://www.server110.com/nginx/201402/5534.ht ...

  9. HashMap集合特点

      >HashMap集合特点 HashMap:是基于哈希表的Map接口实现. 哈希表的作用是用来保证键的唯一性的.          不明白,直接看HashMap的put方法源码 //HashM ...

  10. zabbix对网卡流量超出添加阈值

    给网卡设置流量阈值: 配置告警路径: Configuration--Templates--Template OS Linux--Discovery--Network interface discove ...