LMLPHP后院

通过 UA 来识别浏览器和操作系统技术

maybe yes 发表于 2017-05-23 23:03

通过 UA 来判断浏览器及版本信息和操作系统类型及版本信息,其实意义不大,也是不太准的。一般这种只适用于浏览器请求识别,如果是 APP 客户端一般也不会设置这样的字段,至少会换种方式或名字。如果要更加准确的判断这些信息,应该在客户端完成识别。

即使意义不大,还得尝试去做。

写这种代码,比较费时间,因为不仅仅是技术,而是需要大量的搜集工作。找了一些开源的软件包,大的吓人,有些竟然依赖网络请求,这样就很慢且不稳定。发现一个网上的接口,一看就是专业的。useragentstring.com,不过这个接口太慢了。

分享一下,找起来不容易啊,尤其的微软的 Windows。

preg_match('/(firefox|chrome|msie|safari|360|uc|maxthon|qq)[\s\/]+([\d\.]+)/i', $user_agent, $matches);
if (isset($matches[1])) {
    $browser = $matches[1];
}
if (isset($matches[2])) {
    $browser_version = $matches[2];
}
$data['browser'] = $browser; 
$data['browserVer'] = $browser_version; 

$operate_system = '';
if (strpos($user_agent, 'Windows NT 6.1')) {
    $operate_system = 'Windows7';
}
if (strpos($user_agent, 'Windows NT 5.1')) {
    $operate_system = 'Windows XP';
}
if (strpos($user_agent, 'Windows NT 6.4')) {
    $operate_system = 'Windows 10';
}
if (strpos($user_agent, 'Windows NT 6.3')) {
    $operate_system = 'Windows 8.1';
}
if (strpos($user_agent, 'Windows NT 6.2')) {
    $operate_system = 'Windows 8';
}
if (strpos($user_agent, 'Windows NT 6.0')) {
    $operate_system = 'Windows vista';
}
if (strpos($user_agent, 'Mac OS X')) {
    $operate_system = 'Mac OS X';
}
if (strpos($user_agent, 'iPhone')) {
    $operate_system = 'iPhone';
}
if (strpos($user_agent, 'iPad')) {
    $operate_system = 'iPad';
}
if (strpos($user_agent, 'Android')) {
    $operate_system = 'Android';
}
if (strpos($user_agent, 'Linux')) {
    $operate_system = 'Linux';
}

如何让 VIM 不生成备份文件技术

maybe yes 发表于 2017-05-23 22:55

vim 编辑器在编辑文件的时候经常会到处生成备份文件,并且备份文件的文件名没有什么匹配规律,以致一度被认为是一个很脏的编辑器。

方法一,关闭备份:

set nobackup

方法二,设置备份目录:

set backupdir=/tmp

MySQL 开启通用查询日志技术

maybe yes 发表于 2017-05-23 22:46

有时候对一些东西不熟悉,就必须要对相关的东西熟悉,一起配合起来才能查出问题。

MySQL 开启通用日志的方法,临时开启:

sql> set global log_output=file;
sql> set global general_log_file='/tmp/general.log';
sql> set global general_log=on;

关闭通用日志:

sql> set global general_log=off;

PHP Fatal error: Can't use function return value in write context技术

maybe yes 发表于 2017-05-23 22:35

经常写代码的你,是否遇到过这样的错误: FastCGI sent in stderr: "PHP message: PHP Fatal error:  Can't use function return value in write context in ...

这是与 php 版本有关的报错,不能使用函数返回值作为函数参数,5.5 之后就不会有。

if (empty(self::conn())) return false;

empty function can be used only for variables and if you pass anything else, it will throw a parse error:

法国穷人富人对总统大选看法新闻

maybe yes 发表于 2017-05-16 23:32

在法国最穷的城镇和最富裕的地区有很多不同,包括这次总统大选和候选人。

Roubaix 鲁贝,在法国北部,没落的工业。在 2014 年被评为法国最穷的地区,有 45% 的居民生活在贫困线以下。

同样,在巴黎郊区的富人区塞纳河畔讷伊,被评为最富裕的地区,只有 7% 的人生活了贫困线以下。

这两个富裕程度相差很大的城镇居民,对即将到来的法国大选和他们要选举的候选人有着非常不同的看法。

在鲁贝,这个靠近比利时的城镇,曾经的法国纺织工业的中心。问题不是他们会选哪个候选人,而是是否他们会选举。从这一点就可以看出来,它的绰号为什么是“缺席之都”。

大多数被采访的人都对这个国家非常失望,他们感觉到选举即将到来的总统对他们的未来没有任何影响。

法国穷人富人对总统大选看法
2024-04-26 00:29:09 1714062549 0.006634