Appearance
PHP 笔记
常用函数与字符串处理
php
// PHP
PHP常用函数
echo('')输出
var_dump() //会返回变量的数据类型和值
print_r()//输出数组结构
str_word_count("Hello world!") //取单词个数
ltrim()//删首空
rtrim()//删尾空
trim()//删首尾空
addslashes()//转义
stripslashes()//反转义
strlen($str) //取字符串长度√
mb_strlen($str)//取文本长度√
strpos("<div>123456</div>","123456") //寻找文本(原文本,搜索文本)√ 返回值Int,没有找到返回false(!== false则找到)
strstr($str1,$str2)//文本_取右边(原文本,从哪个文本开始)(包含当前字符)
substr($str,start,[lenth])//取文本中间(原文本,起始,[长度])√
substr_count($str1,$str2)//文本_取出现次数
str_replace("world", "Kitty", "Hello world!") //子文本替换(被替换文本,替换后文本,原文本)(区分大小写)√
str_ireplace("world", "Kitty", "Hello world!")//子文本替换(不区分大小写)
explode("|",$str);//文本分割√ 相当于JS中的split
implode("|",$str_arr);//文本合成√ 相当于JS中的join
substr_replace("Hello world!","Kitty",0,5);//文本替换
number_format(1896.96,2) 格式化字符串:1,896.96
strcmp($str1,$str2)//文本比较(区分大小写)
strcasecmp()//文本比较(不区分大小写)
strnatcmp($str1,$str2)//文本比较(自然运算法则,区分大小写,用于比较数字大小)
strncmp($str1,$str2,len)//比较前n个字符
preg_grep(/正则表达式文本/,str_arr);//正则匹配数组中的每一个成员,返回一个新子匹配文本数组
preg_match(/正则表达式文本/,str,str_arr);//正则.创建(非全局)返回值是0或1,返回数组是str_arr √
preg_match_all(/正则表达式文本/,str,str_arr);//正则.创建(全局)全局匹配,返回数组是str_arr √
preg_quote($str1,$str2);//对str1里的所有特殊字符进行转义,str2为指定字符
preg_replace(/正则表达式文本/,str1,str)//正则.替换(全局),在str中替换匹配到的文本为str1
preg_spilt(/正则表达式文本/,str)//正则.文本分割
list($a,$b,$c)=[1,2,3];-->$a=1; $b=2; $c=3;//用于将数组的每一个值,赋值给list函数的每一个参数,解构赋值
each($arr)//用于返回数组当前指针所在位的键值对!并将指针后移一位
count($arr,[COUNT_RECURSIVE]) //取数组成员数(),COUNT_RECURSIVE(或1)用于递归多维数组√
array_search($str1,$str_arr),//在数组str_arr中寻找str1,找到后返回键名,否则返回false
array_pop($str_arr) //给数组移出一个元素,返回被移出的元素√
array_push($str_arr,$str1,$str2) //给数组加入成员√
array_unique($str_arr)//删除数组中重复的元素
array_merge()//合并数组
urlencode($str) //URL编码
urldecode($str) //URL解码时间与日期
php
mktime(hour,miunte,second,month,day,year,[is_dst])//获得本地化时间戳
time()//时间_取现行时间戳 (真)(10位时间戳)
date('Y-m-d H:i:s',timestamp)//时间戳转时间文本,timestamp省略时取现在时间
strtotime("2020-2-3 16:20:00")//时间文本转时间戳
getdate(timestamp)//取现行时间()(数组形式)
checkdate(month,day,year) //日期检查,返回布尔值Cookie 与 Session
php
setcookie(cookie的变量名:name,变量的值:value,失效时间:expire,有效路径:path,有效的域名:domain,1为HTTPS有效,2为HTTP/HTTPS都有效:secure)
$_COOKIE[]读取cookie
setcookie("name","",time()-1)//删除cookie
session_start()//启动session
unset($_SESSION['user'])//删除会话
$_SESSION=array()//删除多个会话
session_save_path//获取session路径
session_destory()//结束当前会话
session_set_cookie_params()//设置失效时间
session_name()
session_id()HTML/XML 处理与图片
php
header("content-type:image/jpeg");
htmlspecialchars_decode() //将特殊的 HTML 实体转换回普通字符
strip_tags()//去除HTML标签
//解析XML
$postStr = file_get_contents('php://input');
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
//在图片上写字
header("content-type:image/jpeg");
$im=imagecreatefromjpeg($url);
$textcolor=imagecolorallocate($im,255,255,255);
imagettftext($im,20,0,20,40,$textcolor,"C:\Windows\Fonts\msyh.ttf","我是水印");//写TTF文字到图中
imagejpeg($im);
imagedestroy($im);//结束图形,释放内存空间
//
//图片上加图
header("content-type:image/jpeg");
$src_im=imagecreatefromjpeg("180.jpg");//载入图片画布
$dst_im=imagecreatefromjpeg("tupian.jpg");//载入图片画布
$src_x = imageSX($src_im);
$src_y = imageSY($src_im);
imagecopy ($dst_im,$src_im,0,0 ,0, 0, $src_x, $src_y);
imagejpeg($dst_im);
imagedestroy($src_im)//结束图形,释放内存空间文件与目录
php
fopen($filename,$mode)//打开文件--handle
mode:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。(原来的EOF符不保留)
b 二进制(默认)
t 文本
// 忽略SSL证书
$stream_opts = [
"ssl" => [
"verify_peer"=>false,
"verify_peer_name"=>false,
]
];
//配置UA
ini_set('user_agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36');
fclose()//关闭文件
readfile($filename)//读入并输出文件,失败返回false
file($filename)//将文件内容按行输出到数组
file_get_contents($filename,[offset],[maxlen])//读入一个字符串
file_put_contents($filename,$str,[flags])//写入数据(重写)
base64_encode(hash_hmac('sha1', $srcStr, $secretKey, true));//使用 HMAC+base64 方法生成带有密钥的哈希值
fgets(handle,[length])//读取一行数据
fgetss(handle,[length],[tags])//读取一行数据,忽略HTML和PHP标记
fgetc(handle) //读取单个字符
fread(handle,length)//读取任意长度的字符
fwrite(handle,$str,[length])//写入数据
opendir(path)//打开目录
closedir(handle)//关闭目录
scandir(path)//浏览目录(返回数组)
mkdir(path)//创建目录
rewind(handle)//将文件handle的指针设为文件流的开头
fseek(handle,offset)//文件指针定位
feof(handle)//判断文件指针是否在文件尾
ftell(handle)//返回当前指针的位置
$_FILES[filename][name]
$_FILES[filename][size]
$_FILES[filename][type]
$_FILES[filename][tmp_name]
$_FILES[filename][error]//返回0说明文件上传成功
move_upload_file($filename,destination)//这里的$filename指tmp_name,destination为路径+名称语法与常量
php
. 串接
.= 串接赋值
//for循环:
for ($i=1;$i<=10;$i++) {
语句;
}
//foreach循环:
foreach ($arr as $value) {
语句;
}
foreach ($arr as $k=>$v) {
语句;
}
优先级:&&>||>and>or
//常量
define("PI",3.14)
//数组
$cars=array("porsche","BMW","Volvo");
$cars=array(key1=>value1,key2=>value2,key3=>value3);
//数组排序函数
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
//对象
$this->可以调用本类中的成员变量/方法
//访问全局变量:
$GLOBALS[index]
//其他超全局变量
$_SERVER 保存关于报头、路径和脚本位置的信息
$_REQUEST 用于收集 HTML 表单提交的数据。
$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据
$_GET 也可以收集 URL 中的发送的数据
$_FILES
$_ENV
$_COOKIE
$_SESSION
MYSQLcURL 请求模板
php
/**
* PHP发送请求
* @param string $api 接口地址
* @param array $postData POST请求数据
*/
function httpRequest($api, $postData = array())
{
//1.初始化
$ch = curl_init();
//2.配置
//2.1设置请求地址
curl_setopt($ch, CURLOPT_URL, $api);
//2.2数据流不直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//2.3POST请求
if ($postData) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
}
//curl注意事项,如果发送的请求是https,必须要禁止服务器端校检SSL证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//3.发送请求
$data = curl_exec($ch);
//4.释放资源
curl_close($ch);
return json_decode($data, true);
}