为您找到搜索结果:4216个
**关于PHP如何定义一个空对象(REST API如何处理空对象和空数组)
在写接口的过程当中,手机端有需求说不让返回json数组,要返回一个对象。那么我们可以怎么做呢?其实很简单,强制转换即可。声明空对象:$empty_object=(object)array();或者$empty_object=(object)null;把数组转换为对象:$arr=array(‘a’,'b’);$empty_object=(object)$arr;...
CentOS下php安装mcrypt扩展
(以下步骤均为本人实际操作,可能与你的安装方法有所区别,但我会尽量排除疑惑)大致步骤(1)安装mcrypt,(2)安装php对mcrypt的扩展,(3)重启apache(1)、确认你的linux没有安装mcrypt库,如果已安装,跳过安装步骤[root@test-206~]#yumlistinstalled|grepmcryptlibmcrypt.x86_642.5.8-4.el5.centosinstalledlibmcrypt-devel.x86_642.5.8-4.el5.centosinstalledmcrypt.x86_642.6.8-1.el5installed以上显示已经安装过,若没有,则按以下两种方式安装(方法一)yum命令懒人安装yuminstalllibmcryptlibmcrypt-develmcryptmhash执行后会显示即将安装的相关库,你可以根据你的linux限定x86_64或者i386,如yuminstalllibmcrypt.x86_64(如果yum命令无法连接仓库,请检查你的/etc/yum.repos.d/里的文件正确性,以及你的/etc/host...
PHP 标准AES加密算法类
分享一个标准PHP的AES加密算法类,其中mcrypt_get_block_size('rijndael-128', 'ecb');,如果在不明白原理的情况下比较容易搞错,可以通过mcrypt_list_algorithms函数查看你需要的加密算法标识。 <?php/***AES128加解密类*@authordy**/defined('InEjbuy')orexit('AccessInvalid!');classAes{//密钥private$_secrect_key;publicfunction__construct(){$this->_secrect_key='MYgGnQE2jDFADSFFDSEWsdD';}/***加密方法*@paramstring$str*@returnstring*/publicfunctionencrypt($str){//AES,128ECB模式加密数据$screct_key=$this->_secrect_key;$screct_key=base64_decode($screct_key);$str=trim($...
使用php扩展mcrypt实现AES加密
AES(AdvancedEncryptionStandard,高级加密标准)是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。Rijndael是在AES中使用的基本密码算法。 对于此算法网上流传有很多php代码实现的版本,其实php的扩展mcrypt完全支持此加密算法,不必要自己去写代码实现。先不说自己写费时费力(当然你若是想研究此加密算法,那另说),使用php代码实现的算法效率也不会太高。 mcrypt扩展在php中默认是没有的,需要自己安装配置,其方法可以在网上搜索,这里不在详述。你可以使用以下代码检查你的php环境是否支持mcrypt [php] viewplaincopy $cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes(); //mcrypt支持的加密模式...
php正则匹配以“abc”开头且不能以“xyz”结尾的字符串
本文介绍下,用php正则区配以"abc"开头的,且不能以"xyz"结尾的字符串的方法,有需要的朋友参考下。要求:用php正则表达式匹配以“abc”开头,但结尾不能包含“x”、“y”、“z”的字符串。解析:abc开头,正则这样写:^abc。以abc开头了,后面要有一串的字符串一般用[^…………]这样来否定。既然是否定“x”、“y”、“z”,就是[^xyz]了。 完整的正则表达式就是这样:^abc[^xyz]*$下面是使用此正则的完整php示例,如下:<?php$str='abcdef124f';$search='/^abc[^xyz]*$/';if(preg_match($search,$str)){echo$str.'符合<br/>';}else{echo$str.'不符合<br/>';}//outputabcdef124f符...
PHP 分割字串 Function 的速度比較(substr/sscanf/preg_match)---substr最快!
固定長度的字串(假設是06481a63041b578d702f159f520847f8),要照固定格式做切割,使用PHP要怎麼切會比較快?註:要將此字串切成=>06/48/1a63041b578d702f159f520847f8這三個字串. 寫簡單的程式做個測試,來比較 substr / sscanf / preg_match 的速度.先設$a='06481a63041b578d702f159f520847f8';,再執行下面程式做測試(全部都跑100萬次的數據):使用substr程式執行花4.08482551575秒:$x[0]=substr($a,0,2);$x[1]=substr($a,2,2);$x[2]=substr($a,4,28);使用sscanf程式執行花5.26213645935秒(與substr差-5.26213645935)list($x[0],$x[1],$x[2])=sscanf($a,'%2s%2s%28s');註:$x=sscanf($a,'%2s%2s%28s');//耗費時間增...
php正则判断手机号码的方法
导读:php用正则表达式判断手机号码的写法:从文章中匹配出所有的手机号就可以preg_match_all(),如果要检查用户输入的手机号是否正确可这样来检查:preg_match().用正则匹配手机号码的时候,我们先分析一下手机号码的规律:1.手机号通常是11位的2.经常是1开头3.第二个数字通常是34578这几个数字,2014.5.5日170号段的手机号开卖所以这里多了个7.$g="/^1[34578]d{9}$/"; //"^"符号表示必须是1开头;"[]"的意思是第二个数字必须是中括号中一个数字;而d则表示0-9任意数字,后跟{9}表示长度是9个数字;后面的$表示结尾;开始和结尾的/是正则表达式必须放在这个中间,有的后面可能还跟模式. 从文章中匹配出所有的手机号就可以这样写了:$str='老吧博客作者的手机是18912345678';preg_match_all("/^1[34578]d{9}$/",$str,$mobiles);//var_dump($mobiles); 如果要检查用户输入的手机号是否正确可这样来检查:if(preg_match("...
PHP完整的AES加解密算法使用及例子(256位)
依赖PHP自身的mcrypt扩展 <?phpclassaes{//CRYPTO_CIPHER_BLOCK_SIZE32private$_secret_key='default_secret_key';publicfunctionsetKey($key){$this->_secret_key=$key;}publicfunctionencode($data){$td=mcrypt_module_open(MCRYPT_RIJNDAEL_256,'',MCRYPT_MODE_CBC,'');$iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);mcrypt_generic_init($td,$this->_secret_key,$iv);$encrypted=mcrypt_generic($td,$data);mcrypt_generic_deinit($td);return$iv.$encrypted;}publicfunctiondecode($data){$td=mcrypt_modul...
常用对称加密算法(DES/AES)类(PHP)
看注释,啥也不说了,欢迎各种跨平台测试! /** * 常用对称加密算法类 * 支持密钥:64/128/256 bit(字节长度8/16/32) * 支持算法:DES/AES(根据密钥长度自动匹配使用:DES:64bit AES:128/256bit) * 支持模式:CBC/ECB/OFB/CFB * 密文编码:base64字符串/十六进制字符串/二进制字符串流 * 填充方式: PKCS5Padding(DES) * * @author: linvo * @version: 1.0.0 * @date: 2013/1/10 */ class Xcrypt{&nb...
php面向对象中public与var的区别
public和var的作用差不多因为var定义的变量如果没有加protected或private则默认为publicphp4中一般是用varphp5中就一般是用public了现在基本都是使用public来代替varvar是定义变量的;而public是定义property(属性)和method(方法)的可见性的 var是PHP4的时候用的,它和现在的Public作用一样,现在就用Public了,PHP4的时候没有Public,Private,Protected,都只有一个var...
**极光推送Jpush(v3)服务端PHP版本的api脚本类
关于极光推送的上一篇文章已经说明了,此处就不多说了。使用v3版本的原因是v2使用到2014年年底就停止了。点击查看上一篇的地址 http://www.dodobook.net/php/777欢迎移步浏览。昨天才开始拿到极光推送的SDK下载文档。下载地址http://docs.jpush.cn/display/dev/Server-SDKs看了半天也看出眉目。安装example的方法试了,各种报错。还需要vendor/autoload.phpcomposer的支持。后来查找各种方法能实现了。但是感觉好庞大的一个包。且想封装成为一个类,几次尝试都失败。想想v2版本一个文件实现多好啊。自己太笨了,网上找找到相关的文档。自己稍加改动,终于实现,一个类就在后端调用了。直接上代码:<?phpif(!defined('BASEPATH'))exit('Nodirectscriptaccessallowed');//极光推送的类//文档见:http://docs.jpush.cn/display/dev/Push-API-v3/***使用示例$pushObj=newJpush();//...
**极光推送PHP服务器端推送移动设备消息(Jpush V2 api)
jpush.php 这是推送方法 用到curl发送请求 <?php/***极光推送php服务器端*@authoryalongsun*@Email<syl_ad@163.com>*/classjpush{private$_masterSecret='';private$_appkeys='';/***构造函数*@paramstring$username*@paramstring$password*@paramstring$appkeys*/function__construct($masterSecret='',$appkeys=''){$this->_masterSecret=$masterSecret;$this->_appkeys=$appkeys;}/***模拟post进行url请求*@paramstring$url*@paramstring$param*/functionrequest_post($url='',$param=''){if(empty($url)||empty($param)){returnfalse;...
php中序列化与反序列化
http://www.cnblogs.com/A-Song/archive/2011/12/13/2285619.html转自:http://qing.weibo.com/tag/unserialize把复杂的数据类型压缩到一个字符串中serialize()把变量和它们的值编码成文本形式unserialize()恢复原先变量eg:$stooges=array('Moe','Larry','Curly');$new=serialize($stooges);print_r($new);echo"<br/>";print_r(unserialize($new));结果:a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}Array([0]=>Moe[1]=>Larry[2]=>Curly)当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理:$shopping=array('Poppyseedbagel'=>2,'PlainBag...
**PHP转义Json里的特殊字符的函数
http://www.banghui.org/11332.html 在给一个 App 做API,从服务器端的MySQL 取出数据,然后生成JSON。数据中有个字段叫content,里面保存了文章内容,含有大量HTML标签,这个字段在转json的时候需要转义,因为有大量的特殊字符会破坏json的结构。比如这么一段content:'Loremipsum"dolor"sitamet,consecteturadipiscingelit.'则必须要转化为:Loremipsum"dolor"sitamet,consectetur\adipiscingelit.那么有哪些字符是需要转义的呢?看下图:如果 PHP 版本>5.2,json_encode自带转义。如果是旧版本的PHP则可以用下面的函数。#listfromwww.json.org:(backspace,fformfeed)publicfunctionescapeJsonString($value){$escapers=array("\","/",""","","","","...
**PHP foreach 如何判断为数组最后一个最高效?
http://www.zhihu.com/question/20158667 其他方法:$list=array('a','b','c');foreach($listas$k=>$v){if($v!=end($list)){//不是最后一项}else{//最后一项}}还可以根据指针来判断用到的方法是:current()函数返回数组中的当前元素(单元)。每个数组中都有一个内部的指针指向它“当前的”元素,初始指向插入到数组中的第一个元素。current()函数返回当前被内部指针指向的数组元素的值,并不移动指针。如果内部指针指向超出了单元列表的末端,current()返回FALSE。 reset()— 将数组的内部指针指向第一个单元 end() 将 array 的内部指针移动到最后一个单元并返回其值 参见 current(),each(),prev(),next() 和 reset()。 ...