一、PHP
1. php标记符
(1)形式1(推荐)
<?php
……
?>
(2)形式2(不推荐)
<script language="php">
……
</script>
(3)形式3(不推荐)
<?
……
?>
但依赖于php.ini中的设置。short_open_tag=On(Off是此种形式不可用)
php的结束标记(比如 ?> ),在如下情况可以省略:php的语句之后,再没有了html代码部分。
2. php语法
2.1 注意事项
(1)区分大小写;
(2)变量必须以$开头,其后紧跟变量名;
(3)php中,变量不赋值是无意义的(如“var $v1;”没有意义;)
2.2变量的基本操作
(1)赋值;($v1=1)
(2)取值;
echo $item;//取出$item的值并输出;
$item1 = $item;//取出$item的值并给其他变量赋值;
(3)判断;
isset(变量名)
判断该变量是否存在,或该变量是否有数据值!存在或有数据值,就是true,否则就是false;
(4)删除。
unset(变量名)
删除一个变量,并不是指将该变量从程序中删掉,而是,“断开”该变量名跟该变量原有的数据值之间的“引用关系”(联系)。
2.3变量命名规则:以字母或下划线开头;
(1)骆驼命名法:首单词小写,其后每个单词首字母大写;($myFatherName)
(2)帕斯卡命名法:每个单词首字母大写;($MyFatherName)
(3)下划线分割法:每个单词小写,并且之间用下划线分开。($my_father_name)
2.4变量的传真方式
(1)值传递
$v1=1;
$v2=$v1;(对$v1的值进行复制而已,$v1的值还在)
(2)引用传递
$m1=1;
$m2=&$m1;
2.5可变变量:连续出现“$”的变量形式,就是所谓的“可变变量”
$s1 = “abc”; //这是一个变量,里面存储的是字符串”abc”
$abc = 10;
echo $$s1; //输出10
2.6预定义变量
(1)$_GET(5种形式)
跳转到某个页面,并“同时”携带(提交)一定的get数据过去!
形式1:这种形式跟post数据类似,数据由用户填写获得。
<from action = "目标文件.php" method = "get">
<input type = "text" name = "data1"/>
<input type = "text" name = "data2"/>
<tnput type ="submit" value = "提交"/>
</from>
形式2:用户不能修改数据。
<a href = "目标文件.php?data1=5&data2=cctv&age=18">链接文字</a>
形式3:
<script>
location.href = "目标文件.php?data1=5&data2=cctv";
</script>
形式4:
<script>
location.assign ("目标文件.php?data1=5&data2=cctv");
</script>
形式5:php跳转语法
语法形式:header("location:目标网页地址");
<?php
header("location:目标文件.php?data1=5&data2=cctv");
?>
(2)$_POST
只需把$_GET中的get换成post。
(3)$_REQUEST
实用性不大。
同时具有get和post数据
<!--以下action中的?号后面的数据都会以get方式提交-->
<form action=”目标文件.php?data1=5&data2=cctv&age=18” method=”post”>
<!--以下表单项的数据都会以post方式提交-->
<input type=”text” name=”n1” />
<input type=”text” name=”n1” />
<input type=”submit” value=”提交” />
</form>
(4)$_SERVER
代表在一次浏览网页的过程中的浏览器端的一些信息或服务器端的一些信息。我们只是在程序中可以拿到这些信息,并用于编程所需!比如:取得用户的访问IP地址。
$_SERVER[‘REMOTE_ADDR’]://获取访问者的ip地址
$_SERVER[‘SERVER_ADDR’]://获取服务器所在的ip地址
$_SERVER[‘SERVER_NAME’]://获取服务器的名字,其实就是站点设置中的servername
$_SERVER[‘DOCUMENT_ROOT’]://获取站点的真实物理地址,其实就是站点设置中的documentroot
$_SERVER[‘PHP_SELF’]://获取当前网页地址(不含域名部分)
$_SERVER[‘SCRIPT_FILENAME’]://获取当前网页地址物理路径
$_SERVER[‘QUERY_STRING’]//获取当前网页地址中的所有get数据(就是?号后面部分),但只是一个整体的字符串而已
(5)$GLOBALS
是一个“重复性数据”,它里面存储了我们自己定义的所有“全局变量”。主要是用于在局部范围不可以使用全局变量的时候,又需要该全局变量的值,此时就可以用它来取得该全局变量的值。
2.7 常量
常量无需$符号;常量不可销毁,其值不可改变;具有超全局作用
(1)定义
- 方法一
define(“常量名”,常量值);
define("PI",3.14);
define("NAME","sue");
- 方法二
const 常量名 = 常量值;
const CC1 = 1234;
if ( $v1 > 5){
const c2 = 2;//错误的!!!
}
const语法只能用在“顶层代码”位置,而不能用在大括号的位置。
(2)取值
- 方法一:直接使用名字
- 方法二:constant(“常量名”);
2.8进制转换
- 十进制→其他
输入:数字;输出:字符串。
decbin(一个十进制数字);//将十进制转换为二进制
decoct(一个十进制数字);//将十进制转换为八进制
dechex(一个十进制数字);//将十进制转换为十六进制
- 其他→十进制
bindec(一个2进制数字);
octdec(一个8进制数字);
hexdec(一个16进制数字);
2.9比较运算符
==和===比较:前者通常叫做模糊相等的比较,后者叫做精确相等的比较(只有数据的类型和数据的值/内容,都相等,才是全等的)
2.10错误控制运算符@
通常就用在一个地方:
$link = @mysql_connect("数据库服务器地址","用户名","密码");
如果该连接数据的语句失败(比如连接不上),则屏蔽该失败的错误提示!
2.11空格
 //不同浏览器效果一样
//不同浏览器效果不一样
3.管理一组事物的开关状态(demo)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>网页标题</title>
</head>
<body>
<?php
//假设,有5个灯泡需要管理,需要实现以下功能目标:
//1, 可以指定任意一个灯泡的“当前状态”
//2, 可以打开指定的任意一个灯泡
//3, 可以关闭指定的任意一个灯泡
//首先,需要设定对应的5个常量,代表对应的5个灯泡:
define("D1", 1);//对应二进制值为:00000001
define("D2", 2);//对应二进制值为:00000010
define("D3", 4);//对应二进制值为:00000100
define("D4", 8);//对应二进制值为:00001000
define("D5", 16);//对应二进制值为:00010000
//然后,定义个变量,该变量就代表这5个灯泡的“任意组合状态”值;
$state = 10;//其对应二进制值为:00001010。此时,它其实表示第2和第4个灯亮($state的值可以是“任意的”)
//任务1, 可以指定任意一个灯泡的“当前状态”:
//需求1a:请输出灯泡1的状态;
if( $state & D1) > 0 ){//按此算法逻辑就可以判断灯1
//分析:
//$state的值为: 00001010
//D1的的值为: 00000001
// &
//----------------------------
// 00000000
echo "<br />灯1是亮的";
}
else{
echo "<br />灯1是灭的";
}
//需求1b:请输出灯泡2的状态;
if( ($state & D2) > 0 ){//按此算法逻辑就可以判断灯2
echo "<br />灯2是亮的";
}
else{
echo "<br />灯2是灭的";
}
//做一个所有灯的整体显示:
function ShowAll(){
echo "<p>";
for($i = 1; $i <= 5; ++$i){
$s = "D" . $i;
if( ($GLOBALS['state'] & constant($s)) > 0 ){//注意$GLOBALS['state']
echo "灯{$i}亮,";
}
else{
echo "灯{$i}灭,";
}
}
echo "</p>";
}
echo "<br />初始所有灯的状态:";
showAll();
//需求2, 可以打开指定的任意一个灯泡
//也只要按照如下算法就可以打开:
//$state = $state | 对应灯的常量值;
//需求2a:请打开灯3:
$state = $state | D3;
echo "<br />灯3打开后:";
showAll();
//需求2b:请打开灯5:
$state = $state | D5;
echo "<br />灯5打开后:";
showAll();
//需求3, 可以关闭指定的任意一个灯泡
//也只要按照如下算法就可以打开:
//$state = $state & (~对应灯的常量值);
//需求3a:请关闭灯2:
$state = $state & (~D2);
echo "<br />灯2关闭后:";
showAll();
//需求3b:请关闭灯5:
$state = $state & (~D5);
echo "<br />灯5关闭后:";
showAll();
//需求3c:请关闭灯1(其实该灯本来就是关的):
$state = $state & (~D1);
echo "<br />灯1关闭后:";
showAll();
?>
</body>
</html>
二、ThinkCMF
1.项目开始
1.1获取框架
到http://git.oschina.net/thinkcmf/ThinkCMFX 中获取链接,克隆到本地的WWW文件夹下。克隆到本地后,将项目名改成自己需要的。
git clone https://git.oschina.net/thinkcmf/ThinkCMFX.git
1.2安装使用
在浏览器输入域名(如:http://localhost/ThinkCMFX)执行,将会出现如下安装界面:点击“接受”。
至此,安装完成。
安装完成后建议删除application目录下的Install。安装完成,一定把 data/conf/db.php 文件做个备份。