php识别
//为true时就是手机访问否则为PC
functionisMobile(){
//如果有HTTP_X_WAP_PROFILE则一定是移动设备
if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
returntrue;
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if(isset($_SERVER['HTTP_VIA'])){
//找不到为flase,否则为true
returnstristr($_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'])))
returntrue;
}
//协议法,因为有可能不准确,放到最后判断
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')))){
returntrue;
}
}
returnfalse;
}
⑵ 实现地址自动识别实例(PHP)
文章正文
址自动识别现在普遍,特别是用在快递填写地址,姓名,手机号码的时候,会把这些按照一定的规范填写后,点击自动识别后,会自动填写到各自的input。最近也简单的实现了这个功能,给后台添加用户的时候,自动识别地址。以下是效果图
具体问题具体姿凯分析!代码实现基于laravel完成。一个laravel完整的功能得具备这些:路由route,Model, View, Controller, 我这里用的有依赖注入服务容器等功能,当然,用到地址,你首先要有地址库。。。
下面来看看是如何实现的,这里我只贴出核心代码
UsersController控制器
在伏册握这里新建构造函数,实现容器的依赖注入 UsersRepository
接下来就新缺庆建地址识别的方法, $discernDel 接收的数据是从前端传过来的,后面再贴前端代码。 业务代码处理交给容器 UsersRepository 里的方法 getDiscern 处理
来看看 userRepository容器处理地址识别的各种业务代码
上面的方法处理手机,名称,和地址处理,地址处理有些繁杂,因为有时候填写的地址有不一样的,比如广西省,有些就填写广西壮族自治区,所以 getAddressArrar 方法处理地址匹配信息,根据自己的业务做调整,如下
前端html部分代码
基本上能看得懂的。jquery用到 getDiscern(); 方法,手机号码,姓名,地址等input这里就不一一列出了。大家根据下面的jquery都能想象到
jquery代码部分
ajax post后交给url: getDiscern 处理,这个就是上面controller的方法,success返回的数据后再追加到每个input里,最后再清除掉自动识别地址框的数据
整个过程简单,又清晰明了,以上就是我的代码,分享给大家,觉得哪个地方不对劲的,欢迎留言吐槽!
⑶ 请问php有办法识别一张图片色块分布吗比如找出最适合添加文字的地方
理论上肯定是可以的。不过这应该是一个很高深的东西。所以,我只能给你我很粗浅的方法:
一:写个函数,这个函数的主要功能是找出一张图片上的主要颜色(代码在最后面)
二:把一张图片有GD库分成9份(3*3)或更多份,然后用第一个函数来取得每一份小图的主要颜色。
三:比对这几份小图的颜色,看哪一份的颜色是你需要的。
如果你原意,你也可以切很多份,比如10000份(100*100),然后计算这10000个颜色的中你需要的颜色的分布,找出你需要的区域。
$i = imagecreatefromjpeg("image.jpg");
for ($x=0;$x<imagesx($i);$x++) {
for ($y=0;$y<imagesy($i);$y++) {
$rgb = imagecolorat($i,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> & 0xFF;
$b = $rgb & 0xFF;
$rTotal += $r;
$gTotal += $g;
$bTotal += $b;
$total++;
}
}
$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);
⑷ php关于textarea中换行、回车、空格的识别与处理
在使用 textarea 输入文字后,如何在提交至后台并返回页面时保持原有格式,包括换行、回车、空格等特殊字符?为了实现这一需求,需要了解浏览器的兼容性问题。
在 IE9 及以上版本、Firefox、Chrome 等主流浏览器中,换行符识别通常采用 “/” 格式;而在 IE7-8 中,识别换行符则需分两步:首先匹配 “\r”,接着匹配 “/”。
针对这一问题,有两种解决策略:
1. 替换特殊字符:将 “\r” 和 “\s” 分别替换为对应的字符串或特殊标记。这样替换后的文本能够被浏览器正确解析,从而显示为原样,包括换行、空格等格式。
具体实现方法如下:
例如,将 “\r” 替换为 “\n”,将 “\s” 替换为 “ ”。这使得文本在显示时能够保持原有的换行和空格。
2. 替换为 ASCII 码:将 “\r” 替换为 ASCII 码的 chr(10),将 “\s” 替换为 chr(32)。这种方式下的文本虽然在其他地方无法解析为特殊字符,但在网页中显示时则能以 ASCII 码的形式直接显示出换行、空格等效果。
实现步骤如下(以 JavaScript 为例):
将 “\r” 替换为 “\u000A”,将 “\s” 替换为 “\u0020”。这样替换后的文本以 HTML 格式显示时,不会被解析为特殊字符,而是直接以字符形式显示。
需要注意的几点:
1. 使用 `str.replace('aa','dd')` 方法替换字符串时,仅替换第一次出现的“aa”。若需替换全部出现的“aa”,应使用正则表达式写法:`str=str.replace(/aa/g,'dd');`。
2. 使用 `document.getElementById("ts").value.indexOf(" ")` 来获取字符串中空格出现的第一次位置,以此判断字符串是否包含空格。