php 图像占位符,PHP笔记.php

// 连接数据库:

$con = mysqli_connect('localhost','root','root');

PHP常用函数

echo('')输出

var_dump() //会返回变量的数据类型和值

print_r()//输出数组结构

str_word_count("Hello world!") //取单词个数

ltrim()//删首空

rtrim()//删尾空

trim()//删首尾空

addslashes()//转义

stripslashes()//反转义

strlen($str) //取字符串长度√

mb_strlen($str)//取文本长度√

strpos("

123456
","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解码

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) //日期检查,返回布尔值

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()

header("content-type:image/jpeg");

htmlspecialchars_decode() //将特殊的 HTML 实体转换回普通字符

strip_tags()//去除HTML标签

//在图片上写字

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)//结束图形,释放内存空间

//

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为路径+名称

.串接

.=串接赋值

//for循环:

for ($i=1;$i<=10;$i++) {

语句;

}

//foreach循环:

foreach ($arr as $value) {

语句;

}

foreach ($arr as $k=>$v) {

语句;

}

优先级:&&>||>and>or

/**

* 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);

}

//常量

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

// thinkphp框架

// 路由地址直接指向appcation/index/controller/

Route::rule('路由表达式','路由地址','请求类型')

Route::get('路由表达式','路由地址')

Route::post('路由表达式','路由地址')

'[blog]'=>[

':id'=>['Blog/read',['method'=>'get']],

':name'=>['Blog/read',['method'=>'post']]

];

//Db操作数据库:(相当于sql语句)

//1.增:

Db::table('表名')->insert($data); //=>insert into 表名 ($k) values($v)

Db::table('表名')->getLastInsID()//获取自增ID

//2.删:

Db::table('表名')->where('id',1)->delete();//根据条件删除

//3.改:

Db::table('表名')->where('id',1)->update(['name'=>'thinkphp']);//=>update 表名 set name=thinkphp where id=1

//4.查:

Db::table('表名')->where('id',1)->find();//查询一条数据=>select * from 表名 where id=1

Db::table('表名')->select();//查询数据集

Db::table('表名')->where('id','>',1)->value('name');//读字段文本值

Db::table('表名')-where('status','<>',1)->column('name');//查询某一列的值(数组)

->order('id desc')//=>order by id desc

->field('id,username')//=>select id,username

Db:name方法用于带有前缀的表名

$this->success('新增成功','User/list')

$this->error('新增成功','User/list')

$this->redirect('http://thinkphp.cn',302)

//模板语法(name不需要加$,value需要加$)

//不解析输出

{literal}

{/literal}

//模板包含

{include file='' /}

//模板继承

{block name="title"}标题{/block}

//switch

{switch name=""}

{case value="0" break="1"}情况1{/case}

{case value="1" break="1"}情况2{/case}

{default /}默认

{/switch}

//eq

{eq name="user.sex" value="1"}男{/eq}

{neq name="user.sex" value="1"}男{/neq}

//if

{if condition="$user.name eq 'zhang'"}张三

{elseif condition=""}李四

{else/}

{/if}

//volist

{volist name="$list" id="item" offset="起始行" length="循环长度" empty="列表变量为空时占位符"}

{$循环变量名}

{/volist}

//foreach

{foreach name="users" item="item" key="index"}

{/foreach}

//是否赋值

{present name="sex"}赋值{/present}

{notpresent name="sex"}未赋值{/notpresent}

//空

{empty name="sex"}性别为空{/empty}

{notempty name="sex"}性别不为空{/notempty}

//ffmpeg框架(3.4.2)

# 安装 epel 库,如果以前装过可以不用

yum install -y epel-release

# 引入 nux.ro 的库

rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

# 执行安装

yum install ffmpeg

//imagick库(3.4.3)

yum install ImageMagick

yum install ImageMagick-devel

yum install php-pear

yum -y install php-devel

安装imagick

pecl install imagick-3.4.3

//图片+文字

public function test(){

$imagick = new Imagick(WEB_ROOT.'test.gif');

$style['font_size'] = 24;

$style['fill_color'] = '#FFFFFF';

$style['font'] = WEB_ROOT . "font/msyhbd.ttf"; ///微软雅黑字体 解决中文乱码

$this->textttf($imagick,'测试', 50, 100, 0,$style);

header ( 'Content-type: ' . 'image/'.strtolower ($imagick->getImageFormat ()) );

ob_end_clean();

echo $imagick->getImagesBlob ();

}

//圆角:roundCorners

//旋转:rotateImage('white',60);

//图上贴图:compositeimage()$newimage,\Imagick::COMPOSITE_OVER, 0, 0)

//缩放:resizeImage(100,100,Imagick::FILTER_LANCZOS, 1)

// 添加水印文字

public function textttf(& $imagick, $text, $x = 0, $y = 0, $angle = 0, $style = array()) {

$draw = new ImagickDraw ();

if (isset ( $style ['font'] ))

$draw->setFont ( $style ['font'] );

if (isset ( $style ['font_size'] ))

$draw->setFontSize ( $style ['font_size'] );

if (isset ( $style ['fill_color'] ))

$draw->setFillColor ( $style ['fill_color'] );

if (isset ( $style ['under_color'] ))

$draw->setTextUnderColor ( $style ['under_color'] );

if (isset ( $style ['font_family'] ))

$draw->setfontfamily( $style ['font_family'] );

if (isset ( $style ['font'] ))

$draw->setfont($style ['font'] );

$draw->settextencoding('UTF-8');

if (strtolower ($imagick->getImageFormat ()) == 'gif') {

foreach ( $imagick as $frame ) {

$frame->annotateImage ( $draw, $x, $y, $angle, $text );

}

} else {

$imagick->annotateImage ( $draw, $x, $y, $angle, $text );

}

}

//gif图像尺寸改变

$pic=new Imagick($url);

header('Content-type: image/gif');

foreach ($pic as $frame) {

$frame->thumbnailImage(426, 500);

}

ob_end_clean();

echo $pic->getImagesBlob();

redis:

use think\cache\driver\Redis;

$redis = new Redis();

$redis->connect('127.0.0.1', 6379);

// $redis->auth('password'); # 如果没有密码则不需要这行

//把 'test'字符串存入 redis

$redis->set('test_name', 'test');

$redis->get('test_name');//获取值

//$redis->keys('*')//键数组

lpush//unshift

rpush//push

rpop//pop

lpop//shift

lLen//length

rm//删除

clear//全部删除

$arList = $redis->lrange("tutorial-list", 0 ,-1);//获取列表

正则表达式实例:1.取src://i

2.取div:/

(.+)/i

3./

([\s\S]*?)/i

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值