‘壹’ php可以获取到手机号或者唯一标识吗
可以,用is_numeric 和strlen 函数来写,最后用正则来判断是否为手机号码,是手机号码就获取
用 is_numeric 判断是否为数字
用 strlen 判断长度是否为11位数或12位数,12位数判断第一位数是否为0,基本上打外省电话需要在号码前加0
$text='15812345678';
$search='/^(1(([35][0-9])|(47)|[8][0126789]))d{8}$/';
if(preg_match($search,$text)){
echo'手机完全符合';
}else{
echo'手机格式不符合';
}
‘贰’ php如何获取客户端唯一标识符IPmac地址
<?php
classGetMacAddr{
var$return_array=array();//返回带有MAC地址的字串数组
var$mac_addr;
functionGetMacAddr($os_type){
switch(strtolower($os_type)){
case"linux":$this->forLinux();break;
default:$this->forWindows();break;
}
$temp_array=array();
foreach($this->return_arrayas$value){
if(preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i",$value,$temp_array)){
$this->mac_addr=$temp_array[0];
break;
}
}
unset($temp_array);
return$this->mac_addr;
}
functionforWindows(){
@exec("ipconfig/all",$this->return_array);
if($this->return_array)
return$this->return_array;
else{
$ipconfig=$_SERVER["WINDIR"]."system32ipconfig.exe";
if(is_file($ipconfig))
@exec($ipconfig."/all",$this->return_array);
else
@exec($_SERVER["WINDIR"]."systemipconfig.exe/all",$this->return_array);
return$this->return_array;
}
}
}
//---实例化类
$mac=newGetMacAddr(PHP_OS);
echo$mac->mac_addr;
echo"<br/>";
echomd5($mac->mac_addr);
?>
以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行。。。
至于如何限制,应该是去截取mac的一部分经行if判断就可以了,你先尝试一下
‘叁’ php微信开发,微信有什么可以获取的唯一标识一个用户的变量吗怎么获取
唯一标识是openid,获取方法参考微信api相关文档,这个回答好像是废话,但我只能这么回答
‘肆’ 通过PHP取得移动设备的唯一标识码! 在线等。。急!
有原理干嘛,能连起来就是了
‘伍’ PHP能否获取客户端唯一标识(cpu序列号,mac地址等)
权限足够的情况下,可以输出cpu信息php调用:$a = exec('cat /proc/stat'); php有个执行方式是用``包裹字符串,同样可以在系统上直接执行 同样需要足够的权限。
‘陆’ php session原理
在解决问题之前,先来了解一下 PHP SESSION 的工作原理。在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数 session_id() 获取/设置)。SESSION ID 可以通过两种方式保留在客户端,使得请求不同的页面时,PHP 程序可以获知客户端的 SESSION ID;一种是将 SESSION ID 自动加入到 GET 的 URL 中,或者 POST 的表单中,默认情况下,变量名为 PHPSESSID;另一种是通过 COOKIE,将 SESSION ID 保存在 COOKIE 中,默认情况下,这个 COOKIE 的名字为 PHPSESSID。这里我们主要以 COOKIE 方式进行说明,因为应用比较广泛。
那么 SESSION 的数据保存在哪里呢?当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。默认情况下,php.ini 中设置的 SESSION 保存方式是 files(session.save_handler = files),即使用读写文件的方式保存 SESSION 数据,而 SESSION 文件保存的目录由 session.save_path 指定,文件名以 sess_ 为前缀,后跟 SESSION ID,如:sess_。文件中的数据即是序列化之后的 SESSION 数据了。如果访问量大,可能产生的 SESSION 文件会比较多,这时可以设置分级目录进行 SESSION 文件的保存,效率会提高很多,设置方法为:session.save_path="N;/save_path",N 为分级的级数,save_path 为开始目录。当写入 SESSION 数据的时候,PHP 会获取到客户端的 SESSION_ID,然后根据这个 SESSION ID 到指定的 SESSION 文件保存目录中找到相应的 SESSION 文件,不存在则创建之,最后将数据序列化之后写入文件。读取 SESSION 数据是也是类似的操作流程,对读出来的数据需要进行解序列化,生成相应的 SESSION 变量。
‘柒’ 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可以获取到手机号或者唯一标识吗
获取不到,但是可以尝试用cookie一类的给用户做标记