php语言图片
win+R打开命令行,cmd进DOS窗口 DOS命令开启关闭Apache和Mysql Apache启动关闭命令
httpd -k stop
httpd -k start
httpd -k restart
Mysql启动关闭命令
net stop mysql
net stop mysql
index.php index.html index.htm //优先级从左到右
在httpd.conf文件里面有优先级的定义
php不是强类型语言,是弱类型语言(解析型语言),不需要提前声明,由程序自己判断,和强类型语言不同,不需要编译后再使用,apache可以调用php解析器直接解析php代码,html中直接嵌套php代码,当前要是在php文件中
php中变量名区分大小写,函数名和类名不区分大小写,所以干脆变量名和函数名全小写 utf-8编码时,一个中文三个字符 gbk编码时,一个中文两个字符
echo $name;//输出变量
var_dump($name);//输出数组,并且打印类型和长度
print_r($name);//输出数组,但不打印类型和长度
$conn = mysql_connect("主机名","用户名","密码");
文件打开资源
目录打开资源整型 is_int();
浮点型 is_float();
字符型 is_string();
布尔型 is_bool();
数组 is_array();
对象 is_object();
资源 is_resource();
null类型 is_null();
标量类型 整型 浮点型 字符型 布尔型 复合类型 数组 对象 特殊类型 资源 null类型
is_scalar() 测试是否是标量
is_numeric 测试是否是数字 整型 浮点型
is_callable() 测试是否是函数,语言结构则会返回false
echo()不是函数,虽然后面也可以加括号,和函数类似
print()也是语言结构,而printf是函数
array()也是语言结构
list()也是语言结构
$num = 123;
echo $num."abc";
字符型 -> 整型 "3" ->3
$str = "123";
echo $str + 1;
其他类型 -> 布尔类型 和empty()函数里面为空的情况一样
$num = 0;//会转成bool类型的假false
if($num){
//如果为真则执行
}
else{
}
强制类型转换 和C语言一样
(类型名)变量 例如(float)$num
unset($name);括号里面是变量名
define("HOST","localhost");
define("USER","root");
define("PASS","123");
define("DBNAME","test");
数据库的配置文件就要用到常量,而且后面不能被修改 常量不能被放到双引号里面或者花括号里面,要用.来连接常量
PHP_OS 系统平台
PHP_VERSION php当前的版本
__LINE__ 该行代码在第几个行
__FILE__ 文件的绝对路径
__FUNCTION__ 函数的名字
M_PI 圆周率
$arr = array("use1","use2","use3");
echo $arr[1];
$arr = array("name"=>"user","age"=>"30");
echo "<pre>";
print_r($arr);
echo "</pre>";
对象运算符 -> 对象使用 逻辑运算符 开关功能 && 如果前面为真,才会判断后面的,和C语言一样,面试会考,但没有实际意义
date("Y-m-d");系统的年月日,Y,m,d的顺序是可以换的哦
date("w");系统的周几
header("content-type:text/html;charset = utf-8");
<?php
$days = 31;
echo "<table width = '700px', border = '1px'>";
for($i = 1, $k = 1; $i <= $days;){
//在行产生的时候判断行数来确定行的颜色
if($k % 2 == 1){
echo "<tr bgcolor = 'grey'>";
}
else{
echo "<tr style = 'background:blue'>";
}
//七天为一个周期
for($j = 0; $j < 7; $j++){
if($i > $days){
echo "<td> </td>";
}
else{
echo "<td>{$i}</td>";
}
$i++;
}
echo "</tr>";
$k++;
}
echo "</table>";
?>
exit();后面的()可以不用写
die();后面的()可以不用写,并且可以在里面写上内容
例如:die("脚本终止");
include()和require()的区别
$arr = array("name" => 1, 2, 3, 100 => 4, 5, "age" =>6)
,它们的下标打印为"name", 0, 1, 100, 101,"age"
数组取值printf_r($arr);
数组赋值,$arr['age'] = 30
,数组赋值也可以定义数组,$arr[] = 1; $arr[] = 2;
这些内容意义不大for循环来进行带数字索引数组遍历,而foreach()可以遍历一切数组,foreach($arr as $key => $val),as就是从$arr中取值$val,然后再在循环里面打印数组的值,关联数组索引被称为键值对,list和each遍历数组,感觉麻烦,while(list($key,$val) = each($arr)){echo "<h1>{$key}:{$val}</h1>";
多维数组,数组里面套数组,例如二维数组:$arr = array(1, 2, array(4,5));
一张数据表其实就是一个二维数组,里面的每一行记录就是一个一维数组
22.超全局数组
$_SERVER 查看服务器信息,用print_r打印服务器相关信息,不要用echo
$_GET 获取get提交过来的数据,两个页面之间通讯,表单传值(get方式,post方式),
a标签传值(get传值),get传值的可以在地址上看到,不安全,
a标签推荐使用get提交数据,表单推荐使用post处传值方式,
而$_POST获取表单post传过来的数据,$_REQUEST获取a标签或者表单get或者post过来的数据
$_REQUEST 等于$_GET和$_POST
cookie和session前面不能有输出
$_COOKIE 同一个变量在多个页面获取到
$_SESSION 同一个变量在多个页面获取到
$_FILES 获取表单中的文件,并生成一个数组
$GLOBALS 里面包含页面内的全局变量,在函数里面改变一个外部变量的值,可以用$GLOBALS[$name] = "...";
array_keys();获取数组中的键,参数是数组名
array_vals();获取数组中的值,参数是数组名
array_key_exists();检查一个键是否在数组中
in_array();检查一个值是否在数组中,里面的参数是"值"和数组名
array_flip();键和值对调,参数是数组名
array_reverse();数组中的值反转,也就是函数返回一个和原来数组顺序相反的数组
统计数组的元素和唯一性
count();统计数组元素个数
array_count_values();统计数组中相同值的个数,并返回一个新的数组
array_unique();删除数组中重复的值
使用回调函数处理数组的函数(过滤)
array_filter();数组值过滤,筛选出符合条件的值,参数是数组名和条件
array_map();将回调函数作用到给定数组的元素上,参数是函数和数组,返回一个新数组
数组的排序函数
sort();升序排列,不保留key
rsort();降序排列,不保留key
asort();保留key升序排列
arsort();保留key降序排列
ksort();根据值对key升序排列,排列后key和value互换
krsort();根据值对key降序排列,排列后key和value互换
natsort();用自然排序算法升序排列,如果想降序排列,可以再使用array_reverse()函数倒转
natcasesort();忽略大小写升序排列
array_multisort();多个数组进行排序
拆分、合并、分解与结合函数
explode();拆分函数,例如:explode("-",$arr);
join();//implode();都是合并函数
array_slice();
参数是变量名,起始标量,终止标量,例如:``array($arr, 0, 3);```正数是从左到右截取,负数是从右到左截取,变成一个数组,而原来的数组不变
array_splice();
用法和array_slice类似,不一样的是它不但产生一个新数组,还会把原数组变成截取后剩下的部分,更厉害的是它还可以在原数组裁剪的地方添加元素,例如array_splice($arr, 0, 3, array("ff", "gg", "hh"));
所添加的元素会放到原数组的被裁剪的地方
array_merge($a, $b);合并两个数组变成一个数组
array_combine($a, $b);和并联个数组使前面的数组变成后面数组的下标
array_intersect();取两个数组的交集
array_diff();前面的作为参照物,取后面数组中的和前面不一样的元素,求差集
array_pop()弹出数组的最后一个元素,改变原数组,并返回一个新数组,和unset()不一样
array_push();返回新数组的元素个数,改变原数组
array_shift();在数组最前面弹出一个值,返回移出值,原数组下标重排
array_unshift();在数组前面插入一个值,返回数组个数
其他有用的数组处理函数
array_rand();随机取一个key
shuffle();打乱一个数组
array_sum;求数组所有值的和
range();获取一个范围内的数组,两个参数,可以做验证码
字符串函数
去除空格和字符串填补的函数(解决用户名因多敲了空格而造成不能登录)
ltrim();去除字符串左边的空格
rtrim();去除字符串右边的空格
trim();去除字符串左右两边的空格
str_pad();填充字符串的长度,使用另一个字符串填充字符串为指定长度,
例如echo str_pad($str, "-", (STR_PAD_LEFT));最后一个参数可写可不写
str_repeat(); 将一个字符串重复多少次,例如echo str_repeat("_",3),输出 ___
strlen();获取字符串长度
字符串大小写转换函数
strtoupper();
strtolower();
ucfirst();字符串的首字母大写
ucwords();字符串的每一个单词的首字母都大写
与html相关联的字符串函数(结合着数据库来看)
nl2br();把\n转成br标签,例如echo nl2br("aaaa\nbbb\ccc");和其他语言交互的时候使用可以换行
htmlspecialchars();转实体,转“、< > &”,对于恶意输入,原样输出
strip_tags();去掉html标签,也可以保留一部分,在参数后面加上所要保留的标签,记着加双引号
addslashes();转义' " \ ,在它们前面加上\,和C语言的转义字符一样,默认php开启
stripslashes();去掉addslashes默认加的\
字符串比较函数(ASCII码)
1.按字节进行字符串的比较
strcmp($str1, $str2);比较字符串的每个字节
strcasecmp();忽略大小写比较字符串的每个字节
2.按自然排序时字符串的比较
strnatcmp();按自然排序比较字符串中的数字
strnatcasecmp();按自然排序忽略比较字符串中的数字
字符串的分割与拼接(和前面数组部分一样)
1.分割 explode();把字符串分割成数组
2.拼接implode()(join());把字符串拼接成字符串
字符串的截取
substr();参数为变量名,起始位置坐标(从0开始),终止位置坐标。
需要注意编码问题,可以统一字符编码,
例如:(这个是支持多字节的)echo mb_substr($str, 0, 6,"utf-8"),
不管是中文字符还是英文的字符,都会截取前6个
查询字符串
1.strstr();查找指定字符在字符串中的第一次出现,返回一个字符串,但不够精确
2.strrchr();查找指定字符在字符串中的最后一次出现
3.strpos();查找指定字符在字符串第一次出现的位置
4.strrpos($str, 'w');w在$str中最后一次出现的位置
字符串替换
1.str_replace();参数是两个字符串和一个字符串名字,后面的替换前面的,但是想替换多个不同的字符串,
可以把它们放在一个数组中,然后用数组作为第一个参数,就可以实现多个替换了,
并且还可以实现多个替换多个,就是把第二个参数也变成数组,两个数组对应替换
字符串拆分常用函数
1.pathinfo($str);
2.parse_url($str);专门针对url地址拆分
3.parse_str($str['query'], $arr);拆分更具体
4.preg_split('/ /',$srr['']);正则拆分
其他字符串函数
strrev();字符串翻转
strlen();字符串长度
number_format();格式化数字字符串,每三个字符加一个(,),
还可以选择保留几位小数,可以按照自己的要求格式化
md5();md5加密后的字符串,加密后是一个32位字符串
str_shuffle();随机输出字符串,和数组里面的shuffle一样
1.[b]aaaaaa[/b] UBB代码,使用strip_tags过滤一部分html标签
2.addslashes()
' " \ 前加上\,防止对数据库造成破坏
3.htmlspecialchars()
将' " < > & 转成实体,防止对数据库造成破坏
eval让字符串表达式可以执行
字符串的匹配与查找
1.preg_match();正则表达式匹配
2.preg_match_all();正则表达式全匹配
3.preg_grep();可以做搜索
字符串替换
4.preg_replace();正则表达式替换
字符串分割
5.preg_split(); 正则表达式分割
注: 参数有两种,1.多个数字,2.多个数字组成的数组
1.max(10,5,8);取最大值
2.min();取最小值
3.mt_rand();随机去一个值,参数是一个范围
4.ceil();距该数的上一个整数,不是四舍五入
5.floor();距该数的下一个整数
6.pi();取圆周率函数
7.round();四舍五入函数
与时区有关的函数
1.date_default_timezone_set("时区名字缩写");中国的缩写是PRC
2.date_default_timezone_get();默认的时区,这个和PHP的配置文件有关,
在php.ini里面可以修改默认的时区,这样就不用设置默认的时间了
3.date_timezone_set();
4.date_timezone_get();
5.目录大小 opendir(); readdir();打开读取文件夹 closedir();删除目录资源,然后在删除目录本身rmdir();