PHP判断用户浏览器是否安装alexa工具条程序

 更新时间:2016年11月25日 15:43  点击:1380
本文章给大家介绍PHP判断用户浏览器是否安装alexa工具条程序,原理很简单我们只要获和用户User-Agent识别字符,然后加以判断即可得知用户是不是安装了alexa工具条哦。

众所周知,alexa工具条是常用的网站第三方统计工具,通常我们会自行定制alexa工具条用来让用户安装,通过用户对工具条内容的点击来提高网站在alexa的排名。如下图中河北新闻网的alexa工具条。

河北新闻网的alexa工具条

如果我们在一些必要的php应用中需要强制用户安装,这就涉及到了alexa工具条安装与否的判断。浏览器在访问网页时php可以获取用户的User-Agent识别字符。使用装有Alexa Toolbar的浏览器在请求网页的时候,User-Agent识别字符中会多出alexa标记。用这个特性就可以判断用户的浏览器是否安装ALEXA工具条。通过PHP的$_SERVER['HTTP_USER_AGENT']来获取浏览器的UA字符串信息。以下为PHP判断用户浏览器是否安装alexa工具条代码:

 代码如下 复制代码
if(!preg_match("#Toolbar#i", $_SERVER['HTTP_USER_AGENT'])){
                showmessage(L('alexa_failure'), 'https://www.111cn.net',8000);
            }
由于firefox和ie浏览器中的User-Agent识别字符是不同的,firefox中为Alexa Toolbar,ie中为My Toolbar。所以我们判断的时候只需要判断识别字符中是否包含Toolbar就可以了

注意:IE9的alexa工具条信息获取方式

微软官方开发博客中表示,IE9默认使用比较短的User-Agent识别字符,不再附加.NET及其他任何由软件或机器生成的信息到UA字符串中。所以如果我们想获取IE9用户是否安装了alexa工具条就必须让用户点击“兼容性视图”(如下图所示)

IE9用户是否安装了alexa工具条

在表单中我们有一个method属性,他可以让表单是post与get了,在php中就应该使用对应的get,post来接收了,下面我来介绍一下method参数说明

1.之前就是用过,在form表单post提交时,action的url传递get参数,服务器端是能获取到的:

 代码如下 复制代码

<?php
 print_r($_GET);
 print_r($_POST);
?>
 
<form action="get_post.php?id=100" method="post">
姓名:<input type="text" name="name" /><br>
年龄:<input type="text" name="age" /><br>
<input type="submit" value="提交" />
</form>

2.但是如果你的form提交类型为get,url中传递的参数却是获取不到的:

 代码如下 复制代码

<?php
 /**
  *测试get和post提交
  *@link(http://www.111cn.net)
  */
 print_r($_GET);
 print_r($_POST);
?>
 
<form action="get_post.php?id=100" method="get">
姓名:<input type="text" name="name" /><br>
年龄:<input type="text" name="age" /><br>
<input type="submit" value="提交" />
</form>

下面本文章来给各位同学总结了几种php去除字符串首尾中英文空格程序实例,这里有用正则替换与trim系列函数删除,下面我们来看看。

例1.trim函数删除空格


trim()函数用于去除字符串开始位置以及结束位置的空格,并返回去掉空格后的字符串。语法如下:
string trim(string str[,string charlist]);
ltrim()函数用于去除字符串左边的空格或指定字符串。语法如下:
string ltrim(string str[,string charlist]);
rtrim()函数用于去除字符串右边的空格和特殊字符。语法如下:
string rtrim(string str[,string charlist]);

 代码如下 复制代码
<?php
 
$a="(a,b,c,)";
echo $a."<br/>"; //输出:(a,b,c,)
$b=trim($a,"()"); //去除字符串首尾含有的字符“(”或“)”
echo $b."<br/>"; //输出:a,b,c,
$c=trim($a,"(,)"); //去除字符串首尾含有的字符“(”、“,”或“)”
echo $c."<br/>"; //输出:a,b,c
 
?>

 
输出结果:
(a,b,c,)
a,b,c,
a,b,c
在sql中函数trim()用途为去除首尾空格,ltrim()为去除字符串左侧空格,rtrim()为去除字符串右侧空格。

 

例2.利用str_replace正则替换

 代码如下 复制代码

function  mbTrim($str) 

        return mb_ereg_replace('(^( | )+|( | )+$)', '', $str); 

例3.str_replace正则替换

 代码如下 复制代码

<?
$str="      www.111cn.net     ";
$str = mb_ereg_replace('^( | )+', '', $str);
$str = mb_ereg_replace('( | )+$', '', $str);
echo mb_ereg_replace('  ', "n  ", $str);
?>

在php中如果我们要把字符转换成大小写直接使用strtolower或者strtoupper即可,但是要首字母要转换大小写我们需要使用ucwords相关函数

首字母变大写:ucwords()

 代码如下 复制代码

<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

第一个词首字母变大写:ucfirst()

 代码如下 复制代码

<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

第一个词首字母小写lcfirst()

 代码如下 复制代码

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo); // helloWorld

$bar = 'HELLO WORLD!';

这个文件上传实现可用于实例应用开发中了,因为做了比较好的安全限制了,当然大家还可以对上传图片文件进行类型获取判断了。


今天改进了下旗下几个网站的文件上传系统,顺便发点东西。

全php代码,无js,文件类型根据后缀名判断,非mime判断。

新建个up.php,代码如下:

 代码如下 复制代码
<?php
$uptype=array("jar","zip");
//允许上传文件类型
$max_file_size=20480000;   //上传文件大小限制, 单位BYTE
$path_parts=pathinfo($_SERVER['PHP_SELF']); //取得当前路径
$destination_folder="files/";
//上传文件路径
$name="MuXi_".date("Y-m-d_H-i-s");
//保存文件名
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
 $file = $_FILES["upload_file"];
 if(!is_uploaded_file($file["tmp_name"]))
//是否存在文件
{
echo "文件不存在!";
exit;
}
$torrent = explode(".", $file["name"]);
$fileend = end($torrent);
$fileend = strtolower($fileend);
if(!in_array($fileend, $uptype))
//检查上传文件类型
{
echo"不允许上传此类型文件!";
exit;
}
 if($max_file_size < $file["size"])
 //检查文件大小
{
echo "文件太大,超过上传限制!";
exit;
}
 if(!file_exists($destination_folder))
mkdir($destination_folder);
$filename=$file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo[extension];
$destination = $destination_folder.$name.".".$ftype;
 if(file_exists($destination) && $overwrite != true)
{
echo "同名文件已经存在了!";
exit;
}
 if(!move_uploaded_file ($filename, $destination))
{
echo "移动文件出错!";
exit;
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
echo "上传成功!";
}
?>

调用代码:

 代码如下 复制代码


<form action="up.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
<input type="submit" value="上传" />

用mime类型限制有局限性,有些文件在上传是不是正常本身的mime,导致上传不成功,而用后缀名限制可以很好的解决这个问题。

[!--infotagslink--]

相关文章

  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • js实现浏览器打印功能的示例代码

    这篇文章主要介绍了js如何实现浏览器打印功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • 一个奇葩的最短的 IE 版本判断JS脚本

    使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
  • c# 判断是否为空然后赋值的4种实现方法

    下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
  • PHP中empty和isset对于参数结构的判断及empty()和isset()的区别

    废话不多说了,直接给大家贴代码了。<&#63;php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    第一种,只区分浏览器,不考虑版本 复制代码 代码如下:function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; if (isOp...2014-05-31
  • 详解Vue Cli浏览器兼容性实践

    这篇文章主要介绍了详解Vue Cli浏览器兼容性实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-09
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • C#获得程序的根目录以及判断文件是否存在的实例讲解

    今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • 从PHP $_SERVER相关参数判断是否支持Rewrite模块

    如果是http://www.jb51.net/p1141.html形式的URL,可通过$_SERVER['REQUEST_URI']和$_SERVER['QUERY_STRING']值的区别来分析,最主要是如果页面是通过重定向会产生$_SERVER['REDIRECT_QUERY_STRING']和$_SERVER['REDIREC...2013-10-04
  • 如何使用 JavaScript 操作浏览器历史记录 API

    这篇文章主要介绍了如何使用 JavaScript 操作浏览器历史记录 API,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-24