当前位置:  编程技术>php
本页文章导读:
    ▪php遍历数组 foreach each() list()方法总结      php中遍历数组的方法有很多,例如:foreach语句、list()、each()方法等。 一,foreach语句遍历数组 foreach语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给变量value(也可以.........
    ▪php each()函数的小例子      在php中,each()函数用于将数组当前元素的键值对拆成一个新数组,并把下一个元素作为当前元素。 比如Array(...,'Robert'=>'Bob',...)中的'Robert'=>'Bob'键值对,拆成Array([1]=>'Bob',[value]=>'Bob',[0.........
    ▪php判断是否wap手机客户端的方法详解      php判断是否为手机客户端的程序,方法主要有 user-agent(UA)判断,HTTP_ACCEPT断浏览器支持哪些格式的页面。 同时使用两者,那么基本能够满足大部分的手机判断! 代码:   代码示例: <?php .........

[1]php遍历数组 foreach each() list()方法总结
    来源: 互联网  发布时间: 2013-12-24

php中遍历数组的方法有很多,例如:foreach语句、list()、each()方法等。

一,foreach语句遍历数组
foreach语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给变量value(也可以是其它变量),数组指针会逐一的移动。
 

代码示例:
foreach($array as $value){  //$array要遍历的数组,$value为指针指向数组当前的值,as起到赋值的作用
  code to executed;
}

foreach语句也可以获得数组的键名,如下:
 

代码示例:
foreach($array as $key => $value){
  echo $key "-" $value. "<br />";
}

二,echo()函数
each()的作用是将数组当前元素的键值对拆成一个新数组,并把下一个元素作为当前元素。比如Array(...,'Robert'=>'Bob',...)中的'Robert'=>'Bob'键值对,拆成Array([1]=>'Bob',[value]=>'Bob',[0]=>'Robert',[key]=>'Robert')数组,拆成两套(共四个键值对)返回,0和1的序号对,key和value的名-值对,使用其中一套就可以了。

例:
 

代码示例:
<?Php
$prices=Array('Tries' => 100, 'Oil' => 10, 'Spank Plugs' => 4);
while($elements = each($prices)){
  echo $elements['key'];  //echo $elements[0];
  echo " - ";
  echo $elements['value'];   //echo $element[1];
  echo "<br />";
}

输出结果:
Tires-100
Oil-10
Spank Plugs-4

三,list()函数遍历数组
list()函数可以用来将一个数组分解为一系列的值。list()常与each()一起使用。但是list()也可以不与each()一起使用,例如:list($key, $value) = explode()(":", $v);
list($key, $value) = each($array);   //$key,$value可以任意命名变量名
该句是将each返回的数组当前的0,1位置的元素赋值给$key,$value变量。
例子:
 

代码示例:
<?php
$prices=Array('Tries' => 100, 'Oil' => 10, 'Spank Plugs' => 4);
while(list($product, $prices) = each($prices);){
  echo $product "-" $prices;
  echo "<br />";
}

输出结果:
Tires-100
Oil-10
Spank Plugs-4

另一种实现方法:
 

代码示例:
<?php
$prices=Array('Tries' => 100, 'Oil' => 10, 'Spank Plugs' => 4);
list($product, $price) = $each($prices);
echo "$product - $price";  //输出第一个数组
$next = $next($prices);   // 指针后移
echo $next;

    
[2]php each()函数的小例子
    来源: 互联网  发布时间: 2013-12-24

在php中,each()函数用于将数组当前元素的键值对拆成一个新数组,并把下一个元素作为当前元素。
比如Array(...,'Robert'=>'Bob',...)中的'Robert'=>'Bob'键值对,拆成Array([1]=>'Bob',[value]=>'Bob',[0]=>'Robert',[key]=>'Robert')数组,拆成两套(共四个键值对)返回,0和1的序号对,key和value的名-值对,使用其中一套即可。

php each函数的例子:
 

代码示例:

<?php
//学习each()函数的用法
$prices=Array('Tries' => 100, 'Oil' => 10, 'Spank Plugs' => 4)

while($elements = each($prices)){
  echo $elements['key'];  //echo $elements[0];
  echo " - ";
  echo $elements['value'];   //echo $element[1];
  echo "<br />";
}

输出结果:
Tires-100
Oil-10
Spank Plugs-4


    
[3]php判断是否wap手机客户端的方法详解
    来源: 互联网  发布时间: 2013-12-24

php判断是否为手机客户端的程序,方法主要有 user-agent(UA)判断,HTTP_ACCEPT断浏览器支持哪些格式的页面。
同时使用两者,那么基本能够满足大部分的手机判断!
代码:
 

代码示例:
<?php
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset()($_SERVER['HTTP_X_WAP_PROFILE'])) {
return true;
}

分析:
通过获到客户端返回的HTTP_X_WAP_PROFILE信息,可以判断一定是手机终端,但是并不是所有手机都能返回这个信息,这个和等下的获取via是一样的,这涉及到终端和服务商问题!
代码:
 

代码示例:
<?php
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if(isset($_SERVER['HTTP_VIA']))
{
//找不到为flase,否则为true
return stristr($_SERVER['HTTP_VIA'],"wap") ? true : false;
}

分析:
这个HTTP_VIA里面,包含有服务商提供一些个人信息,如果由这个去判断是最为准确的,但是比如说移动就屏蔽了这个信息。因此,只对部分服务商有效。
代码:
 

代码示例:
<?php
//脑残法,判断手机发送的客户端标志,兼容性有待提高
if(isset($_SERVER['HTTP_USER_AGENT']))
{
$clientkeywords = array('nokia','sony','ericsson','mot','samsung',
'htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel',
'lenovo','iphone','ipod','blackberry','meizu','android','netfront',
'symbian','ucweb','windowsce','palm','operamini','operamobi',
'openwave','nexusone','cldc','midp','wap','mobile');
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match("/(".implode('|',$clientkeywords).")/i",
strtolower()($_SERVER['HTTP_USER_AGENT'])))
{
return true;
}
}

分析:
这个通过客户端返回信息[HTTP_USER_AGENT]来配置手机终端关键字。试想下,要列出所有的手机标识,才能准确判断,这个可行吗?所以,只要列举主流的手机品牌,这样就基本上OK了。不过,上在的代码有一个是判断ucweb的,这个是判断不了的。

因为,我获取到的信息和获取firefox的信息是一致的,也找不到ucweb的关键字。
所以使用ucweb浏览器就无法进行判断,有待新方法出现。
毕竟,ucweb占用绝大部分用户,但是ucweb是以pc浏览器标准靠拢的,因些被误认为是pc浏览器也可以吧!
代码:
 

代码示例:
<?php
//协议法,因为有可能不准确,放到最后判断
if (isset($_SERVER['HTTP_ACCEPT'])) {
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)
&& (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false
|| (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml')
< strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
{
return true;
}
}

分析:
最后就是协议,也不是什么协议了。就是mime类型判断,只接收wml页面的手机,不用说一定是移动终端,但是这么天真的想法是不可能的。因为,现在手机都渐渐可以和电脑的功能接近了!?浏览器上可接受的页面类型也不只是wml,html也同样支持。接收wml排在html前面,这个可以说也是手机,但不是绝对。比如说,蓝莓就是html排在前,wml排在后面。这样就无法做出判断了。

综上所述,就写出下面的php判断页面程序。
 

代码示例:
<?php
/**
*程  序:iswap.php判断是否是通过手机访问
*程序返回:@return bool 是否是移动设备
*/
function isMobile()
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
return true;
}
 
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if(isset($_SERVER['HTTP_VIA']))
{
//找不到为flase,否则为true
return stristr($_SERVER['HTTP_VIA'],"wap") ? true : false;
}
 
//脑残法,判断手机发送的客户端标志,兼容性有待提高
if(isset($_SERVER['HTTP_USER_AGENT']))
{
$clientkeywords = array('nokia','sony','ericsson','mot','samsung',
'htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel',
'lenovo','iphone','ipod','blackberry','meizu','android','netfront',
'symbian','ucweb','windowsce','palm','operamini','operamobi',
'openwave','nexusone','cldc','midp','wap','mobile');
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match("/(".implode('|',$clientkeywords).")/i",
strtolower($_SERVER['HTTP_USER_AGENT'])))
{
return true;
}
}
 
//协议法,因为有可能不准确,放到最后判断
if (isset($_SERVER['HTTP_ACCEPT'])) {
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)
&& (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false
|| (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml')
< strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
{
return true;
}
}
 
return false;
}
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php验证码(附截图) iis7站长之家
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3