PHP全栈学习笔记23
php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与session,日期和时间,图形图形处理,文件和目录处理,面向对象,pdo数据库抽象层,smarty模板。
php是超文本域处理器,是一种服务器端,跨平台,HTML嵌入式的脚本语言。
客户端为b端,url到服务器s端,html到客户端,服务器database,php和Apache组合。
url:统一资源定位符,php解析器在服务器上工作,php代码只能在服务器上工作。
PHP5新特性,构造函数和析构函数,对象的引用,对象的克隆,对象中的私有,公共,以及保护模式,接口,抽象类,_call,_set和_get,静态成员。
php工作流程,PHP基于服务器端运行的脚本程序语言,实现数据库和网页之间的数据交互。
操纵系统,网站运行服务器所使用的操作系统。
服务器,搭建PHP运行环境时所选择的服务器。
PHP包,实现对PHP文件的解析和编译。
数据库系统,实现系统中数据的存储。
还组合浏览器。
PHP代码,到PHP包对实现PHP文件进行解析和编译,服务器搭建PHP运行环境时所选择的服务器,所需操作系统,数据库系统,通过PHP包解析后的代码发送给用户。
PHP代码传给PHP包,请求PHP包进行解析并编译,服务器根据PHP代码请求进行读取数据库,解析后的代码发送给浏览器。
access.conf用于配置服务器的访问权限,httpd.conf用于设置服务器启动的基本环境,srm.conf用于做文件资源上的设定。
<form name="form2" method="post" action=""></form>
name: 表单的名称
method: 表单提交的方法
action:表单提交的路径
<input type="text" name="textfield">
type: 应用表单的类型
name: 文本框的名称
<input type="hidden" name="ID" value="">
type: 表单的类型
name: 隐藏域的名称
value: 隐藏域的值
<textarea name="" cols="" rows="" id=""></textarea>
name: 文本域的名称
cols: 表示文本域字符的宽度
rows: 表示有多少行字符
<input type="checkbox" name="checkbox" value="dashu">
type: 表单的类型
name: 复选框的名称
value: 复选框提交
checked: 勾选
disable: 失效
<input type="radio" name="radiobutton" value="radiobutton" />
<select name="select1">
<option selected="selected"></option>
</select>
<input type="image" name="imageField" src=""/>
<input type="file" name="file"/>
<label></label>
php引用,常量,运算符,流程控制,自定义函数,正则表达式,文件,目录,会话控制,面向对象,网络协议。
PHP标记,注解,常量,预定义变量,变量,数据类型,转换,运算符。
PHP常量,用于存储不改变的数据信息,声明和使用常量
define()函数声明常量
constant()函数获取常量的值
defined()函数判断常量是否已经被定义
预定义变量
PHP中提供了很多预定义变量:
__FILE__ PHP程序文件名
__LINE__ php程序行数
PHP_VERSION PHP程序的版本
PHP_OS PHP解析器的操作系统
E_ERROR 常量指到最近的错误处
E_WARNING 常量指到最近的警告处
php变量,是可以改变的量
声明变量
$变量名称=变量的值
变量赋值
直接赋值,传值赋值,引用赋值
$b = $a;
$b = &$a;
变量作用域
3中变量作用域:局部变量,全局变量,静态变量。
// 局部变量
<?php
function example(){
$a="hello"; // 内部
echo $a;
}
example();
$a = "dashu"; // 外部
echo $a;
?>
// 全局变量
<?php
$a = "hello";
function example(){
global $a; // 使用global关键词声明并使用在函数外部定义的变量a
echo $a;
}
example();
?>
静态变量
<?php
function example(){
static $a = 10; // 定义静态变量
$a+=1;
echo $a;
}
function xy(){
$b = 10; // 定义局部变量
$b+=1;
echo $b;
}
example(); // 静态变量都会+1;
局部变量都不变
可变变量
可变变量是一种独特的变量,前面加:
$$
$$可变变量名称 = 可变变量的值
<?php
$a = "da"; // 定义变量
$$a = "dada"; // 定义可变变量,变量名称为变量a的值
echo $a;
echo $$a;
echo $da
?>
da
dada
dada
php数据类型
3种,标量数据类型,复合数据类型,特殊数据类型
标量数据类型:
boolean布尔型,string字符串型,integer整型,float浮点型。布尔型是PHP常用数据类型,字符串连接的字符序列,由数字,字母和符号组成。
\r 回车
\n 换行
\t 水平制表符
单引号,双引号
界定符
strpos()查找字符串
strrpos()从后往前找
strlen()函数用于计算字符串长度
双引号会解析,单引号不会解析。
integer,float浮点数据类型,可以用于存储整数,也可以保存小数。
复合数据类型
两种,array数组和object对象
特殊数据类型:
resource资源和null空值
资源是由专门的函数来建立和使用,空值表示没有为该变量设置任何值,没有赋值,被赋值为null,被unset()函数处理过的变量。
转换数据类型
(boolean),(bool),(string),(integer),(int),(float),(double),(real),(array),(object)
检测数据类型:
is_bool 检测是否布尔类型
is_string
is_float
is_double
is_integer
is_null
is_array
is_object
is_numeric
数组 mixed任何数据类型,[]表示可选
字符串换数组explode函数
php 运算符
算术运算符,字符串运算符,赋值运算符,位运算符,递增运算符,递减运算符。
逻辑运算符
<?php
$a = ""; // 空
if(isset($a) && !empty($a)) {
echo 'da';
}else{
echo 'shu';
}
?>
isset()函数检测变量是否设置
empty()函数检测变量是否为空
比较运算符,三元运算符
php 流程控制语句
if, switch 条件控制语句
while, do...while循环控制语句
for, foreach 循环控制语句
break, continue跳转语句
include, require 包含语句
include_once, require_once语句
包含语句
<?php include("top.php");?>
<?php include("bottom.php");?>
// include如果外部文件发生错误,系统只会给出一个警告
区别?
require()出错误信息会终止脚本的处理,include()输出警告,不会终止脚本的处理,require()语句调用文件,程序一执行,就调用,include()只有执行到这句时,才会调用。
// 闰年
<?php
$num = 2012;
if(($num%4) == 0 && ($num%100) != 0) {
echo $num;
}else {
echo $num;
}
?>
函数
内部函数和用户自定义函数
定义和调用函数:
<?php
function example($a){
return $a;
}
echo example(1);
?>
在函数间传递参数
3种传递参数:按值传递,按引用传递,默认参数
按值传递函数内部对形参有变化,对函数外实参没有变化
引用传递:
& ,形参加这个 function example(&$a){}
函数内外都发生变化,将实参的内存地址传递给形参
默认参数必须放在非默认的右边。
return()返回函数的调用者
变量函数,叫做可变函数
<?php
function a($a, $b){
return $a+$b;
}
function b($a, $b){
return $a*$b;
}
function c($a, $b){
return $a-$b;
}
$result="a";
echo $result(3,2);
?>
变量函数,将函数名赋值给变量。
函数的引用
<?php
function &example($a=0){
return $a;
}
$str = &example("da");
echo $str;
?>
// da
unset函数,取消引用,只是端口变量名和变量内容之间的绑定,不是销毁变量内容。
函数库
empty检查变量是否为空
gettype获取变量类型
intval获取变量的整数值
is_array是否为数据
is_int, is_numeric是否为数字
isset是否变量被设置,是否被赋值
print_r打印
settype设置变量的类型
字符串函数库
addcslashes 实现转移字符串中的字符
explode字符串指定的字符串或字符切开
ltrim 删除字符串开头的连续空白
str_ireplace 将某个指定的字符串都替换为另一个指定的字符串
str_repeat 将指定的字符串重复输出
str_replace 取代所有字符串中出现的字符
explode函数 字符串变数组
php日期时间函数库
checkdate 验证日期的有效性
date 格式化一个本地时间
microtime 返回当前unix时间戳和微秒数
mktime 获取一个日期的unix时间戳
strftime 根据区域设置格式化本地时间
strtotime 将任何英文文本的日期时间描述解析为unix时间戳
checkdate()函数
checkdate()函数用于验证日期的有效性
php数学函数库
ceil 返回不小于参数value值的最小整数
mt_rand 返回随机数中的一个值
mt_srand 配置随机数的种子
rand 产生一个随机数
round 四舍五入
fmod 返回除法的浮点数余数
getrandmax 获取随机数最大的可能值
floor()实现舍去取整
fmod()返回除法的浮点数余数
php文件系统函数库
basename 返回文件路径中基本的文件名
copy 将某文件由当前目录拷贝到其他目录
file_exists 判断指定的目录或文件是否存在
file_put_contents 将字符串写入指定的文件中
file 读取某文件的内容,并将结果保存到数组中,数组内每个元素的内容对应读取文件的一行
filetype 返回文件类型
fopen打开某文件
fread从文件指针所指文件中读取指定长度的数据
is_dir 判断目录是否存在
is_uploaded_file 判断文件是否应用http post方式上传的
mkdir 新建一个目录
move_uploaded_file 应用post方法上传文件
readfile读入一个文件,写入缓冲
rmdir 删除指定的目录
unlink用于删除文件
fopen()函数用于打开某文件
mkdir()函数用于判断某文件是否存在
file_get_contents()函数读取文本文件信息
实现文件,目录,创建和删除
<?php
if(!is_dir('txt')){ // 判断txt是不是文件夹目录
mkdir('txt'); // 创建txt文件夹目录
$open=fopen('txt/in.txt', 'w+'); // 以读写方式打开文件in.txt
if(is_writable("txt/in.txt")){
if(fwrite($open,"dashu")>0){
fclose($open); // 关闭
mysql函数库
mysql_close 关闭mysql连接
mysql_connect 打开一个mysql服务器的连接
mysql_create_db 创建一个数据库
mysql_error 文本错误信息
mysql_fetch_array 从结果集中获取一行作为关联数组,或数字数组
mysql_fetch_assoc 从结果集中获取一行作为关联数组
mysql_fetch_field 从结果集中获取列信息并作为对象返回
mysql_fetch_object 从结果集中获取一行作为对象
mysql_fetch_row 从结果集中获取一行作为枚举数组
mysql_num_rows 获取结果集中行的数目
mysql_query 发送一条sql查询
mysql_select_db 选择数据库
<?php
$link = mysql_connect("localhost", "root", "root"); // 连接数据库
mysql_selected_db("db_database");
if(!$link){
die("数据连接失败".mysql_error());
}
echo "连接成功";
?>
<?php
$conn = mysql_connect("localhost","root","root") or die("连接mysql服务器失败");
// 连接服务器
$select = mysql_select_db("data_name", $conn);
// 选择数据库
if($select){
echo "数据库连接成功";
}
?>
<?php
$conn = mysql_connect("localhost", "root", "root") or die("连接数据库服务器失败".mysql_error());
$select = mysql_query("use database", $conn); // 选择数据库
mysql_query("set names utf8"); // 设置数据库编码格式
if($select){
echo "数据库选择成功";
}
?>
数据库函数库
count统计数组中元素的个数
array_push向数组中添加元素
array_pop获取并返回数组中的最后一个元素
array_unique删除数组中重复的元素
array_keys获取数组中重复元素的所有键名
array_search获取数组中指定元素的键名
explode将字符串分割成数组
implode将数组中的元素组合成一个字符串
array_rand 从数组中随机取出一个或多个单元
arsort 对数组进行逆向排序
asort 对数组进行排序
in_array 在数组中搜索某个值
count()对数组中的元素个数进行统计
array_push()函数可以向数组中添加元素
strlen()函数计算字符串的长度
substr()函数对字符串进行截取
file_get_contents()函数读取文本文件中的数据
字符串
字符串,转义,还原字符串,截取字符串,分割,合成,替换,检索,去掉字符串首尾空格,特殊字等。
字符串由零个或多个字符构成的一个集合,数字类型,字母类型,特殊字符,不可见字符。
转义,还原字符串
addslashes()函数和stripslashes()函数转义和还原字符串
addslashes()函数用于对sql语句中的部分字符进行转义
addslashes()函数进行字符串转义
stripslashes()函数对转义后进行还原
截取字符串
substr()函数从0开始,进行截取字符串要注意编码格式,切记页面编码不能设置为utf-8,如果页面是utf-8编码格式,那么就使用iconv_substr()函数进行截取。
explode()函数和implode()函数分割和合成
替换字符串
str_ireplace()函数和substr_replace()函数
str_ireplace()函数使用新的字符串替换原始字符串中被指定要换的字符串。
substr_replace()函数
substr_replace()函数对指定字符串中的部分字符串进行替换。
检索字符串
strstr()函数和substr_count()函数
strstr()函数获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。
strstr()函数获取上传图片的后缀
<form name="form" method="post" action="index.php" enctype="multipart/form-data">
<input name="u_file" type="file" size="24"/>
<input type="image" name="imageField" src="images/sc.bmp" onClick="form.submit();">
</form>
<?php
header("Content-type:text/html;charset=utf-8");
if($_FILES[u_file][name] == true){
$file_path="./upload\\";
$picture_name=$_FILES[u_file][name];
$picture_name=strstr($picture_name,".");
if($picture_name!=".jpg"&&$picture_name!=".JPG"){
echo "<script>alert('上传');window.location.href='index.php';</script>";
}else if($_FILES[u_file][tmp_name]){
}else{
}
?>
substr_count()函数
获取子串在字符串中出现的次数
ltrim()函数和rtrim()函数
trim()函数用于去除字符串开始位置和结束位置的空白字符,并返回去掉空白字符后的字符串。
字符串与HTML转换
htmlentities()函数将所有字符转换为html字符串。
结言
好了,欢迎在留言区留言,与大家分享你的经验和心得。
感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。
感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!