php技巧

基于PHP实现短信验证码发送次数限制

2020-07-09
对用户获取短信验证码的手机号.ip.和浏览器(使用唯一标识)进行限制.本文介绍的方法是对用户每天只能通过同一浏览器或同一ip地址获取验证码10次或者同一手机号只能获取3次短信验证码,三种限制为"或"关系,一条超限就不发验证码.方法是通过在服务器端将用户的手机号.ip.ur_r记录并写入文件,再通过读取文件记录判断用户请求发送验证码的次数来做限制.方法如下: 获取短信验证码页面: <!DOCTYPE html> <html> <head></he

PHP手机号码及邮箱正则表达式实例解析

2020-07-08
php用正则表达式判断手机号码的写法:从文章中匹配出所有的手机号就可以preg_match_all(),如果要检查用户输入的手机号是否正确可这样来检查:preg_match(). 用正则匹配手机号码的时候, 我们先分析一下手机号码的规律: 1. 手机号通常是11位的 2. 经常是1开头 3. 第二个数字通常是34578这几个数字, 2014.5.5日170号段的手机号开卖所以这里多了个7. php用正则表达式判断手机号码的写法: $g = "/^1[34578]\d{9}$/"; //

PHP二维数组分页2种实现方法解析

2020-07-08
方法一: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-09' ), array( 'clicks' => 1, 'clickDate' =>'2010

详解PHP中的8个魔术常量

2020-07-06
PHP 向它运行的任何脚本提供了大量的预定义常量. 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常量它们的值随着它们在代码中的位置改变而改变. 例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定.这些特殊的常量不区分大小写,如下: __LINE__ 文件中的当前行号. <?php echo '这是第 " ' . __LINE__ . ' " 行'; ?> 以上实例输出结果为: 这是

浅析PHP echo 和 print 语句

2020-06-29
在 PHP 中有两个基本的输出方式: echo 和 print. 本章节中我们会详细讨论两个语句的用法,并在实例中演示如何使用 echo 和 print. PHP echo 和 print 语句 echo 是语法结构,也就是关键字,不是函数.使用的时候不用加括号,加上也可以.显示多个值的时候可以用逗号隔开.只支持基本类型,布尔型除外,echo true的时候显示1,echo false的时候啥都没有. print 和 echo 基本一致.但是print 不支持逗号分隔多个显示变量的语法. pri

基于PHP实现解密或加密Cloudflar邮箱保护

2020-06-22
Cloudflare 有一项功能挺不错的,就是将页面上所有的邮箱地址都加密起来,防止机器人抓到然后干坏事. 这项功能要在后台开启 email address obfuscation 之后就可以在页面上加入一个邮箱地址,比如说 abc@abc.com 查看源代码就能发现类似如下的代码 <a class="__cf_email__" data-cfemail="30515253705152531e535f5d" href="/cdn-cgi/l/emai

PHP基于openssl实现非对称加密代码实例

2020-06-18
使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密. 1.安装openssl和php的openssl扩展 2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护 openssl genrsa -out rsa_private_key.pem 1024 3.生成公钥:rsa命令用于处理RSA密钥.格式转换和打印信息 openssl rsa -in rsa_private_key.pem -pubout -out

基于PHP实现堆排序原理及实例详解

2020-06-18
堆 堆(heap)是计算机科学中一类特殊的数据结构的统称,通常是一个可以被看做一棵树的数组对象. 堆{k1,k2,ki,-,kn} (ki <= k2i,ki <= k2i+1)|(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2) 关于堆: 堆中某个节点的值总是不大于或不小于其父节点的值: 堆总是一棵完全二叉树(下面). 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆. 完全二叉树 说到堆排序,就不能不提完全二叉树,这些基

如何在PHP环境中使用ProtoBuf数据格式

2020-06-17
前言   RPC是google公司主导的一款RPC框架,并使用protobuf作为数据传输格式,伴随gRPC框架的成熟及使用人群的增加,对于底层使用的数据格式protobuf也被越来越受到重视,而对于PHP生态而言,相关ProtoBuf介绍文档及使用资料比较少,故此写简文希望能帮助到一些有需要的同学.   ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台.跨语言.可扩展特性,类型于常用的XML及JSON,但具有更小

深入分析PHP设计模式

2020-06-14
1.单例模式 一个类,只能允许有一个对象存在 <?php class test{ protected function __construct(){ } public static function getInstance(){ $_test = new test(); return $_test; } } $test = test::getInstance(); var_dump($test); ?> 2.工厂模式 工厂模式,顾名思义,如同工厂一样,你把原材料放入工厂中,出来的是成品,而你并

详解php反序列化

2020-06-09
1  前言 最近也是在复习之前学过的内容,感觉对PHP反序列化的理解更加深了,所以在此总结一下 2  serialize()函数 "所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示.序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字." 一开始看这个概念可能有些懵,但之后也是慢慢理解了 在程序执行结束时,内存数据便会立即销毁,变量所储存的数据便是内存数据,而文件.数据库是"持久数据",因此PHP序列

实例讲解PHP表单

2020-06-08
表单处理 GET vs. POST 1  GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...)).此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据. 2  GET 和 POST 被视作 $_GET 和 $_POST.它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数.类或文件访问它们. 3  传递方式 $_GET 是通过 U

如何在PHP中使用数组

2020-06-07
1.PHP如何获取数组里元素的个数实例 在 PHP 中,使用 count()函数对数组中的元素个数进行统计. 例如,使用 count()函数统计数组元素的个数,示例代码如下: <?php header("Content-Type:text/html; charset=utf-8"); $arr = array("php","thinkphp","laravel"); echo count($arr); 输出结果为: 3

PHP类的自动加载与命名空间用法实例分析

2020-06-05
本文实例讲述了PHP类的自动加载与命名空间用法.分享给大家供大家参考,具体如下: 作为一名合格的程序员,必定会有一个从面向过程编程到面向对象编程的转化过程,在这个过程中诸如命名空间,类,继承,接口,类自动加载等等都是需要我们去掌握的,之前对这些概念都不是很熟悉,只是能够基础地使用,在这里系统的记录一下关于命名空间与类的自动加载知识. 类的自动加载 什么是自动加载类? ? ? 从字面意思上就可以大概知道,当调用一个当前页面未定义的类的时候能够自动加载. 相信如果你之前了解过php的魔术方法的话,肯

PHP标准库 (SPL)——Countable用法示例

2020-06-02
本文实例讲述了PHP标准库 (SPL)--Countable用法.分享给大家供大家参考,具体如下: 类实现 Countable 可被用于 count() 函数. 接口摘要 Countable { /* 方法 */ abstract public count ( void ) : int } 当一个类实现了Countable接口,实现了接口中的count方法,即可直接使用count(Object)的到count方法返回的值. 例: class MyCount { private $num; pub

PHP正则表达式函数preg_replace用法实例分析

2020-06-02
本文实例讲述了PHP正则表达式函数preg_replace用法.分享给大家供大家参考,具体如下: preg_replace 执行一个正则表达式的搜索和替换 语法:preg_replace (pattern ,replacement ,subject,limit,count ) 参数 描述 pattern 正则表达式(字符串或字符串数组) replacement 用于替换的字符串或字符串数组 subject 要进行搜索和替换的字符串或字符串数组. limit 可选.每个模式在每个subject上进

PHP函数用法详解【初始化、嵌套、内置函数等】

2020-06-01
本文实例讲述了PHP函数用法.分享给大家供大家参考,具体如下: 初始函数 函数:封装一段用于完成特定功能的代码. 通俗理解函数:可以完成魔鬼工作的代码块,就像积木一样,可以反复使用,在使用的时候,拿来即用. 函数定义:1)内置函数(字符串操作函数.数组操作函数)2)自定义函数 函数的基本语法格式 function 函数名([参数1.参数2,......]){ 函数体...... } 函数的定义由一下四部分组成: 关键字function function: 在声明函数时必须使用的关键字: 函数名f

PHP数组基本用法与知识点总结

2020-05-31
本文实例讲述了PHP数组基本用法与知识点.分享给大家供大家参考,具体如下: 初识数组 概念: 数组就是一个可以存储一组或一系列数值的变量 数组组成: 数组是由一个或多个数组元素组成的 数组元素: 一每个数组由键(Key)和值(Value)构成 键: "键"为元素的是被名称,也被称为数组下标 值: "值"为元素的内容 映射:"键"和"值"之间存在一种对应关系,称之为映射 类型划分: 根据键的数据类型,可以将数组划分为索引数组和关

PHP与Web页面交互操作实例分析

2020-05-30
本文实例讲述了PHP与Web页面交互操作.分享给大家供大家参考,具体如下: Web交互 1.Web表单交互 当表单的method属性提交方式为POST时,浏览器发送POST请求 当表单的method属性提交方式为GET时,浏览器发送GET请求 当PHP收到来自浏览器提交的数据后,会自动保存到超全局变量中. 超全局变量是PHP预定义好的变量,可以再PHP脚本的任何位置使用 常见的超全局变量数组变量有$ _POST.$_GET等 通过POST方式提交的数据会保存到$_POST中 通过GET方式提交的

php生成短网址/短链接原理和用法实例分析

2020-05-27
本文实例讲述了php生成短网址/短链接原理和用法.分享给大家供大家参考,具体如下: 需求 在我们的项目当中,如果需要更好传播我们的活动链接,但是链接太长1来是不美观,2来是太过于"笨重",例如拼多多,淘宝联盟,他们的推广链接都是有短链接的,还有新浪微博. 但是,这些始终都是别人的,我们调用别人的API进行生成,不稳定,所以可以自己做一个,注册一个稍微短一些的域名就行. 生成源码api.php <?php header("Content-type:application/