PHP 遍历数组的方法汇总

1.foreach()foreach()是一个用来遍历数组中数据的最简单有效的方法。#example1:<?php$colors= array('red','blue','green','yellow');foreach ($colorsas$color){echo "Doyoulike $color?<br/>";}?>显示结果:Doyoulikered? Doyoulikeblue? Doyoulikegreen? Doyoulikeyellow?2.while()while()通常和list(),each()配合使用。#example2:<?php$colors= array('red','blue','green','yellow');while(list($key,$val)= each($colors)) {echo "Otherlistof $val.<br/>";}?>显示结果:Otherlistofre...

***PHP 遍历数组方法foreach

http://php.net/manual/zh/control-structures.foreach.php(PHP4,PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:foreach(array_expressionas$value)statementforeach(array_expressionas$key=>$value)statement第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。还能够自定义遍历对象。 Note:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach ...

**PHP二维数组遍历时同时赋值

我个人在项目中的写法://遍历二维数组foreach($tmp_arrayas$key=>$value){//动态生成图片的URL$attach_url=$this->qiniu_utils->get_download_url($tmp_array[$key]['attach_save_name'],'7vih5p.com1.z0.glb.clouddn.com','PRIVATE');//赋值URL$tmp_array[$key]['attach_save_url']=$attach_url;}$result['feed_img_ids']=$tmp_array;---------------------------------$tmp_array[$key]['attach_save_url']=$attach_url;上面的这种赋值是按照地址传值的,所以可以赋值成功!---------------------------------------------------------------------------以下是网上的参考答案Q:$arr=array('...

给MD5加上salt随机盐值加密算法实现密码安全的php实现

给MD5加上salt随机盐值加密算法实现密码安全的php实现如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码。加上salt后就会难上很多可以一定程度上解决问题,即便是黑客获得了其中的salt和最终密文,破解也是相当麻烦的。PS: 一般都是加密后的数据再存入到数据库的,安全的数据是不可逆的,即数据库里面的数据即使你知道他是通过md5,加盐md5,base64等算法加密进去的也不可直接反推出内容,一般是通过输入的内容加上加密算法后得出的跟数据库里面对比。很多破解是用社工库进行撞库对比,你的帐号密码在其他不安全网站给破解后拿来到其他网站尝试撞库。如何加点盐(salt)?为了加强MD5的安全性加入了新的算法部分即加盐值,然后散列,再比较散列值,已确定密码是否正确。加盐值是随机生成的一组字符串,可以包括随机的大小写字母、数字、字符,位数可以根据要求而不一样,使用不同的加盐值产生的最终密文是不一样的:1).得到明文的值2).进行计算获取MD5明文hash值3).随机生成加盐值并插入4).MD5插入加盐值得到的h...

seo伪原创技术原理分析,php实现伪原创示例

seo伪原创技术原理分析,php实现伪原创示例现在seo伪原创一般采用分词引擎以及动态同义词库,模拟百度(baidu),谷歌(google)等中文切词进行伪原创,生成后的伪原创文章更准确更贴近百度和谷歌收录。百度如何看待一个采集内容,但浏览体验和访问性都好的网站?百度站长白皮书上的说明:对于百度来说,能够提供满足用户需求的内容,有良好用户体验的网站就是好网站,有些站点从外站转载来的内容,经过加工提供了内容增益,更好的满足了用户需求,同样可以得到好的展现。只要你的内容满足用户的需求,用户体验良好,一样能够得到好的展现。这就说明了采集过来的内容并不一定是垃圾内容,只要经过用户需求的判定和满足;文章内容增益;网站用户体验提升。一样是优质的内容。搜索引擎本身的定位就是一个庞大的资料平台,面对的目标用户是查找资料的用户,而互联网上用户群体最大的正是来查找资料的用户,搜索引擎展现出来的结果正是为这些用户提供他们想要的答案。下面举例:原创:虽然文章的确是自己写的原创文章,但是文章的内容排版没考虑到用户的体验,内容的方面也没别的网站完善,这时你还觉得这篇原创文章还是高质量内容吗?有解决用户的问题吗?伪...

Github上PHP资源汇总大全,php学习的好资料

Github上PHP资源汇总大全,php学习的好资料国外程序员ziadoz在Github上收集整理了PHP的各种资源,内容包括模板、框架、数据库、安全等方面的库和工具。汇总了各种PHP资源,供各位PHP学习者和程序员参考。英文原文:https://github.com/ziadoz/awesome-php——用于依赖管理的包和框架Composer/Packagist : 一个包和依赖管理器ComposerInstallers:  一个多框架Composer库安装器Pickle:可以在任意平台上安装PHP扩展包——生成Web页面内容的预处理工具Sculpin: 将Markdown和Twig转换为静态HTML的工具Phrozn:另一款将Textile、Markdown和Twig转为HTML的工具——Web开发框架Symfony2 : 由独立组件构成的框架ZendFramework2:同样是由独立组件构成的框架Laravel4:简洁优雅的PHP&nbs...

html5+php实现文件的断点续传ajax异步上传

html5+php实现文件的断点续传ajax异步上传准备知识:断点续传,既然有断,那就应该有文件分割的过程,一段一段的传。以前文件无法分割,但随着HTML5新特性的引入,类似普通字符串、数组的分割,我们可以可以使用slice方法来分割文件。所以断点续传的最基本实现也就是:前端通过FileList对象获取到相应的文件,按照指定的分割方式将大文件分段,然后一段一段地传给后端,后端再按顺序一段段将文件进行拼接。而我们需要对FileList对象进行修改再提交,在之前的文章中知晓了这种提交的一些注意点,因为FileList对象不能直接更改,所以不能直接通过表单的.submit()方法上传提交,需要结合FormData对象生成一个新的数据,通过Ajax进行上传操作。二、实现过程这个例子实现了文件断点续传的基本功能,不过手动的“暂停上传”操作还未实现成功,可以在上传过程中刷新页面来模拟上传的中断,体验“断点续传”、有可能还有其他一些小bug,但基本逻辑大致如此。1.前端实现首先选择文件,列出选中的文件列表信息,然后可以自定义的做上传操作(1)所以先设置...

PHP判断客户端是PC web端还是移动手机端方法

PHP判断客户端是PCweb端还是移动手机端方法需要实现:判断手机版的内容加上!c550x260.jpg后缀变成缩略图PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能的请本人看另外一篇文章:http://www.cnblogs.com/zdz8207/p/php-img-src-preg_replace.html  判断是否手机访问,火狐模拟器返回fasle,chrome模拟器返回true 判断手机发送的客户端标志,兼容性有待提高,把常见的类型放到前面火狐需要在模拟器右边的“自定义UserAgent”包含下面代码判断的关键字才行,比如:Mozilla/5.0android,或直接android/***判断是否手机访问,火狐模拟器返回fasle,chrome模拟器返回true*火狐需要在模拟器右边的“自定义UserAgent”包含下面代码判断的关键字才行,比如:Mozilla/5.0android,或直接android*@returnboolean*/functionisMobil...

php版redis插件,SSDB数据库,增强型的Redis管理api实例

php版redis插件,SSDB数据库,增强型的Redis管理api实例SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储。另外,rocksdb是FB在LevelDB的二次开发版本,因此也存在使用RocksDB作为存储引擎的SSDB版本,可以参考这里。SSDBPHPAPIDocumentation官方api文档http://ssdb.io/docs/php/index.htmlSSDB入门基础-中文版pdf教程http://ssdb.io/ssdb-get-started.pdfphp的redis原生插件有不少bug,建议使用ssdb的-----------------------------实战例子:require_once"SSDB.php";functiongetArticleByCode($code=''){$query=array();try{$ssdb=newSimpleSSDB(REDIS_HOST,REDIS_PORT);$key='article'.$code;//$ssdb->del($key);...

php删除多重数组对象属性,重新赋值的方法

php删除多重数组对象属性,重新赋值的方法实例:sphinx搜索出来的结果,要去掉某个属性值:$cl=newSphinxClient();$query=$cl->Query($keyword,$index);方法一,直接删除属性:foreach($query['matches']as$k=>$val){unset($query['matches'][$k]["attrs"]["content"]);unset($query['matches'][$k]["attrs"]["remarks"]);}方法二,把对应属性值设置为空或其他需要的值:foreach($query['matches']as$k=>$val){$query['matches'][$k]["attrs"]["content"]='';$query['matches'][$k]["attrs"]["remarks"]='';}PS:要操作多重数组的关键是foreach循环里用as$k=>$val取得具体元素的下标,否则无法操作。...

PHP json_decode object时报错Cannot use object of type stdClass as array

PHPjson_decodeobject时报错CannotuseobjectoftypestdClassasarrayphp再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误错误:CannotuseobjectoftypestdClassasarray产生原因:$res=json_decode($res);$res['key'];//把json_decode()后的对象当作数组使用。解决方法(2种):1、使用json_decode($data,true)。就是使json_decode的第二个变量设置为true。2、json_decode($res)返回的是一个对象,不可以使用$res['key']进行访问,换成$res->key就可以了。参考手册:json_decodeReturnValues:ReturnsanobjectoriftheoptionalassocparameterisTRUE,anassociativearrayisinsteadreturned....

php CodeIgniter处理多环境错误级别配置

phpCodeIgniter处理多环境错误级别配置开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为,例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在生产环境这将造成一些安全问题。ENVIRONMENT常量CodeIgniter默认使用$_SERVER['CI_ENV']的值作为ENVIRONMENT常量,如果$_SERVER['CI_ENV']的值没有设置,则设置为'development'。在index.php文件的顶部,你可以看到:define('ENVIRONMENT',isset($_SERVER['CI_ENV'])?$_SERVER['CI_ENV']:'development');$_SERVER['CI_ENV']的值可以在.htaccess文件或Apache的配置文件中使用SetEnv命令进行设置,Nginx或其他Web服务器也有类似的设置方法。或者你可以直接删掉这个逻辑,根据服务器的IP地址来设置该常量。对默认框架行为的影响CodeIgniter系统中有几个地方用到了ENVIRONMENT常量。错误报告如果将ENVIRONMENT常量设置...

php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面

php防盗链,phpci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面$route['jump/(:any)/(:any)']="index/jump/$1/$2";文章來源:<arel="nofollow"target="_blank"href="<?=base_url().'jump/'.$code.'/'.urlencode($source)?>"><?=$sname?></a>publicfunctionjump($code,$link){//不是站内跳转的不跳转if(isset($_SERVER['HTTP_REFERER'])&&$_SERVER['HTTP_REFERER']!=''){$rfurl=$_SERVER['HTTP_REFERER'];if(strstr($rfurl,SITE_DOMIAN)){$link=utf8_urldecode($link);redirect($link);}else{redirect(SITE_BASE_URL.$code.".html"...

php原子操作,文件锁flock,数据库事务

php原子操作,文件锁flock,数据库事务php没有继承posix标准支持的unix锁,只封装了一个linux系统调用flock(信号量也能做成锁),按理也是可以使用锁机制的,虽然效率低一点。php脚本是运行在fastcgi容器中,而fastcgi是多进程的,所以如果php程序访问了临界资源,势必造成程序结果的不正确性。估计还要考虑下fastcgi容器的问题------------------------------------问题描述:黑客用的工具刷我们的后台取消订单时会有退款,黑客并发取消订单,导致多次退款如果请求一个一个来,哪怕间隔100毫秒,也是没有问题的一个PHP处理过程是:读退款标志,发现没退款,退款,然后设置已退款标志问题是多个请求同时到了,读出来的退款标志都是未退款,所以多个请求都退款了同一个php文件,被同时请求多次,是同一时刻用php文件锁flock我们试了不行,还是用C++队列用C++监听了一个端口,直接接收HTTP包,然后返回HTTP格式的包,PHP程序中用curl访问我这个C程序.相当于远程调用了,可以部署到其他服务器做分布式了===============...

高并发 php uniqid 用md5生成不重复唯一标识符方案

高并发phpuniqid用md5生成不重复唯一标识符方案uniqid()函数基于以微秒计的当前时间,生成一个唯一的ID。uniqid(prefix,more_entropy)prefix可选。为ID规定前缀。如果两个脚本恰好在相同的微秒生成ID,该参数很有用。more_entropy可选。规定位于返回值末尾的更多的熵。如果prefix参数为空,则返回的字符串有13个字符串长。如果more_entropy参数设置为true,则是23个字符串长。如果more_entropy参数设置为true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。以字符串的形式返回唯一标识符。提示和注释:由于基于系统时间,通过该函数生成的ID不是最佳的。即使使用了第二个参数,也会重复,如需生成绝对唯一的ID最好的方案是结合md5函数来生成唯一ID。-----------------------------------------1//获取唯一序列号2publicstaticfunctiongenerateNum(){3//strtoupper转换成全大写的4$charid=s...
首页上一页...270271272273274...下一页尾页