string修饰的梦修改吗_思梦PHP

(2018-09-10 10:04)

标签:

api加密

api安全校验

分类:

php

职责单一化,各司其职,后端只负责Api接口编写提供给各种不同类型的客户端去调用,但是客户端和服务器端调用是要有权限限制的,不能任何一个客户端都可以随便调用我们的接口(这里面的缘由相信大家都知道吧,当然我就默认你们都知道),再者我们都知道http是明文传输,被抓包可可以修改相应参数,当然如果你使用了https就相对安全了不少!

举一个很简单的栗子,微信的接口大家都调用过吧,当然肯定有没调用过的,没关系,没有调用过的人也是能明白我接下来要讲的事情:微信会有一个sign的签名,就是思梦php上面所说的权限认证机制了

下面思梦php给大家讲的只是其中的原理,我们可以根据所讲知识继续扩展,完善成为你自己的一套程序。

主要使用的工具:thinkphp5/PHP

(1)首先客户端和提供服务的服务器加

(2018-08-16 14:35)

分类:

php

数据结构?是一个又爱又恨的存在,不喜欢它的人认为枯燥,乏味,头大。但是喜欢它的人就恰恰相反,小梦也是属于不喜欢之列。如果你把编程看做是一项练就功夫的事情,那么数据结构就是内功,相信很多小伙伴内心多多少少都有一个武侠梦

单链表官方定义:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)

+

指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。(这不是我说的,是官方说的,但是估计你们看了想骂人)

分类:

php

1、问题一关于弱类型

$str1 = 'yabadabadoo';

$str2 = 'yaba';

if (strpos($str1,$str2)) {

echo '\\'' . $str1 . '\\' contains \\'' . $str2 . '\\'';

} else {

echo '\\'' . $str1 . '\\' does not contain \\'' . $str2 .

'\\'';

}

正确运行的输出结果:

'yabadabadoo' does not contain 'yaba'

strpos是返回字符串str2在str1的位置,没有找到则返回false然而实际上这次返回了0而在if语句中0也被当作false,所以,我们需要对false做类型判断,正确的代码如下:

if (strpos($str1,$str2) !== false) {

} else {

}

需要注意的是我们使用了!==,在php 和 JS中= !相对== 更为严格需要要求数据类型的一致。

2、下面的输出结果会是怎样?

$x = 5;

echo $x;

echo '

';

echo $x+++$x++;

echo '

';

echo '

';

echo $x---$x--;

echo '

';

实际运行结果是

5

(2018-04-19 13:16)

分类:

php

1、fopen() fwrite() fclose() fiel_put_contents

1)fopen(\$path,'xx') 打开一个文件 xx = r 是以只读的方式打开并将指针指向头部 xx = r+

读写方式打开 xx = w 写入方式,并清空文件内容,指针执行头部,不存在则创建 xx = w+ 读写方式,后面同上 xx = a

写入方式并将指针执行头部,但是写入会覆盖之前存在内容,如果不存在则创建 xx = a+ 读写方式,其他同上

2)fwrite(\$handle,content) 向文件中写入文字

3)flcose(\$path) 关闭文件

4)file_put_contents('file',content) 向文件中写入内容

应用场景:做文件的缓存以及做网站的日志记录等

2、fread() feof() fgets() fgetss() fgetc()

file_get_contents() file()

1)fread(\$handle,\$size) 从一个文件中获取指定字节大写的内容

2)feof(\$handle) 判断指针是否已经到达尾部

3)fgets() 从文件中读取一行

4)fgetss() 读取一行并过来html4)fgetc() 从文件

中读取一个字符

5)file_get_contents() 从一个文件句柄里面获取内容6)file() 同上

应用场景:并发不是很高的情况下可以配置文件锁的机制

(2018-04-19 13:15)

分类:

php

1、ob_start()

开启文件缓存

2、ob_get_contents()

得到缓存中的内存

3、ob_get_length()

得到缓冲区的长度

4、ob_flush()

输出缓冲区的内容,如果你想获取缓冲区的内容要在这个函数之前使用ob_get_contents(),不然数据将会被清空

5、ob_end_flush()

输出缓冲区并关闭缓存

6、ob_end_clean()

清除缓存并关闭输出缓冲,如果这个再ob_start()开启之后不执行这个函数时候,那么将一直写入缓冲区

下面我们来写一个页面静态化示例来练练手,本案例是依托thinkphp框架进行讲解,其他框架小伙伴们自行脑补!

1、首先有四个函数

ob_start() 开启缓存

ob_get_contents() 获取缓冲区的内容

ob_clean() 删除缓冲区的内容

ob_get_clean() 先获取然后再删除缓冲区内容

2、然后我们定义一个函数来生成静态文件

public function createCache(){

\$action = ACTION_NAME;

\$c_name = CONTROLLER_NAME;

\$dir = './Cache/'.\

(2018-04-13 13:10)

标签:

php高效学习

分类:

php

1、循环数组有哪几种方式

1)foreach(能够循环关联和索引数组以及对象)

2)for(只能循环索引数组)

3)list和each配合使用循环数组

$arr = ['a'=>1,'b'=>2];

while(list($key,$val) = each($arr)){

echo $key$,val

}

2、is_array(),is_bool,is_int(),is_integer(),is_numeric(),is_string(),is_object(),is_null,is_file,is_dir,is_readable,is_uploaded_file,is_writeable,

1)is_array() 检查一个变量是否是数组

2)is_file() 检查是否是一个文件

3)is_dir()检查是否是一个目录

4)is_uploaded_file() 检查是否是通过http post过来

5)is_readable() 检查是否可读

3、count()

1)计算数组的长度

4、array_sum()、array_product()

1)array_sum() 计算一个数组的和

2)array_product() 计算数组的乘积

5、array_count_values()

1)计算数组中的值出现次数的和

6、in_array() array_key_exists() array_search() key_exists()

1)in_array('xxx',$arr) 判断某个字符是否

(2018-04-02 09:01)

标签:

php

分类:

php

1、addslashes

addslasehes($string) 对字符串进行编译转义

应用场景:能防止sql的注入(当然并不完全是可以,我们可以使用pdo进行预处理然后方式sql的注入,安全不能只靠一种方式防止事情的发生)

2、echo ,print,printf,number_format

1)echo是语言结构体,不是函数,没有返回值,能输出多个值

for example:echo $a,$b

应用场景:输出一些字符串

2)print是一个函数,它只有一个参数,有返回值,不能输出对象和数组

应用场景:输出一些参数值

3)print_r()是一个函数,有返回值,能输出对象和数组

应用场景:打印一些数组或者对象

4)var_dump是一个函数,有返回值

应用场景:能够返回数据的类型,打印一切值

5)printf()是一个函数,有返回值,格式化输出

应用场景:微信的api接口的参数拼接

for example:

$str = 'string';$num=1;

sprintf('$s is string,$u is int',$str,$num);

还能格式化浮点数,是ceil原则,四舍五入

sprintf('%.2f',23.453) 23

(2018-03-27 09:02)

标签:

es6语法

解构赋值

很多人可能和我一样,第一次看到这个词的时候摸不着头脑。但是冷静再看一遍好像明白了,“把数据结构分解开分别进行赋值”。

我们先看几个小例子

let [a,b,c] = [1,2,3]; console.log(a,b,c);//1 2 3 let {name,age} = {name:'jack',age:'18'}; console.log(name,age);//jack 18 let {t

(2018-03-18 16:57)

分类:

php

PHP垃圾回收机制

1、每一个变量定义时都保存在一个叫zval的容器里面,这里面包含了数量的类型和和值,还包含了一个refcount(理解为存在几个变量个数)和is_ref(理解为是否为引用变量)两个额外信息,当变量被引用一次refcount就会+1,当你unset一下之后这个值就会减1直到为0就会从内存中删除

2、定义一个变量的时候并不是每次都会扩大预定于值,因为PHP会在内存中先预占用一个空间,等你声明变量的时候就会分配给你,但是当你超出这个预占用空间之后,那么它就会增加空间,但是等你删除变量时候这个空间容量不会立即消失

3、变量的引用不会单独的多增加内存占用,它会指向zval结构体,只是refcount+1

4、简单说说,PHP的变量依赖于一个内部实现 symbol_table 符号表,而符号表的基础实现是 HashTable

,也就是和PHP数组的基础实现是一致的。真是因为符号表的存在,让我们可以使用global标记全局变量,用如compact等函数直接从当前符号表中拉出变量出来。

那在谈谈题主说的unset($a)会不会马上释放空间,答案是否定的,unset支持从符号表中把名字为a的这个元素删掉了(只是标记这块空间又可用了,而不是释放空

(2018-02-24 22:05)

标签:

365

分类:

杂记

假期结束了,应该很多小伙伴都已经开工了,新的一年你有什么计划,下面小编整理了一份治愈胡思乱想的清单,希望能帮你在胡思乱想的这条道路上一去不回头!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值