首页 > 编程技术 > php

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

发布时间:2016-11-25 15:43

本文章给大家介绍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--]

您可能感兴趣的文章: