❶ php可不可以检测出手机的品牌,如三星.小米,苹果,就像qq空间里可以显示出来一样
手机都有一个特有的UA标识
Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36
上面有关键词Android 、Nexus 5。根据这些关键词去判断手机类型,再对应显示出来具体的型号就可以了。
PHP中UA可以通过$_SERVER['HTTP_USER_AGENT']读到。
判断:
$isIPhone = stripos($_SERVER['HTTP_USER_AGENT'], 'iphone') === false;
UA收集和分析是一项比较繁重的工程。
❷ php 如何获取客户端唯一标识
标识一个客户端:
首先服务端就排除了,因为可以用多个用户登录。
然后看客户端有什么办法,只能是采用客户端存储的方式
1、cookie 这个你排除了,可能是因为清除cookie比较容易操作。但这也是一种办法。
2、客户端的dom存储,这个有一定的局限,只有新的浏览器支持。而且同样可以删除。
3、插件方式,这个需要客户安装,一般不可能,但可以利用比较流行的安装率比较高的插件,例如flash,采用flash的本地存储记录。同样可以删除。
综上,不可能完全的防止,但可以采用几种技术的结合,这样可以增加重复发布的难度。
但是还是那句话,是否重复发表信息是由用户决定的。如果用户认为重复发布的成本高于了解除这个限制的成本,那么也就降低了用户重复发布的几率。
这个没有完美的解决方案,只能是尽力。
❸ thinkphp怎么生成唯一标识
1、md5(time() . mt_rand(1,1000000));
这种方法有一定的概率会出现重复
2、php内置函数uniqid()
uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.
w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。
3、官方uniqid()参考手册有用户提供的方法,结果类似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}
public function create_guid($namespace = '') {
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER['REQUEST_TIME'];
$data .= $_SERVER['HTTP_USER_AGENT'];
$data .= $_SERVER['LOCAL_ADDR'];
$data .= $_SERVER['LOCAL_PORT'];
$data .= $_SERVER['REMOTE_ADDR'];
$data .= $_SERVER['REMOTE_PORT'];
$hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
$guid = '{' .
substr($hash, 0, 8) .
'-' .
substr($hash, 8, 4) .
'-' .
substr($hash, 12, 4) .
'-' .
substr($hash, 16, 4) .
'-' .
substr($hash, 20, 12) .
'}';
return $guid;
}
❹ 求一段php源码,如果用手机访问就自动跳转至手机页面,如果是web访问就自动跳转至web页面
在这个PHP代码段中,首先定义了两个函数,用于检测用户访问设备类型。第一个函数CheckSubstrs通过查找文本中是否包含给定的子字符串行表来判断。第二个函数isMobile则通过调用CheckSubstrs来判断用户代理字符串中是否包含移动设备的相关标志。
移动设备标志列表中包括了各种移动操作系统、移动浏览器以及特定的移动设备标识。这些标识可以用来识别手机、平板电脑等移动设备。代码通过检查这些标志来确定用户的设备类型。
在主逻辑部分,代码首先调用了isMobile函数来判断当前访问设备是否为移动设备。如果是移动设备,那么将输出“手机登录m.php.com”;否则,将输出“电脑登录www.php.com”。这样的设计可以实现根据访问设备类型自动跳转至相应页面的效果。
这段代码的主要功能是基于用户代理字符串来判断访问设备类型,并根据判断结果输出不同的内容。通过这种方式,可以实现自动跳转到手机或电脑版本页面的功能,提升用户体验。
此代码段采用了一种较为传统的方法来检测移动设备,即通过用户代理字符串中的特定标识来判断。这种方法简单且有效,但在面对日益复杂的移动设备环境时,可能会有一些局限性。例如,随着移动设备的多样化以及用户代理字符串的不断更新,这种基于固定标识的检测方法可能需要定期更新以保持准确性。
在实际应用中,开发者可能还需要考虑其他因素,如屏幕尺寸、分辨率等,以提供更加个性化的用户体验。此外,随着响应式设计的流行,直接通过自动跳转来区分设备类型的方式可能逐渐被更为灵活的设计方案所取代。
总的来说,这段代码实现了一个基本的设备检测功能,能够满足大多数情况下的需求。但对于更复杂的场景,开发者可能需要采用更为高级的技术手段,如使用JavaScript结合服务器端逻辑来实现更加智能的设备识别与响应。