众所周知,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);
}
|
注意:IE9的alexa工具条信息获取方式
微软官方开发博客中表示,IE9默认使用比较短的User-Agent识别字符,不再附加.NET及其他任何由软件或机器生成的信息到UA字符串中。所以如果我们想获取IE9用户是否安装了alexa工具条就必须让用户点击“兼容性视图”(如下图所示)
在表单中我们有一个method属性,他可以让表单是post与get了,在php中就应该使用对应的get,post来接收了,下面我来介绍一下method参数说明1.之前就是用过,在form表单post提交时,action的url传递get参数,服务器端是能获取到的:
代码如下 | 复制代码 |
<?php |
2.但是如果你的form提交类型为get,url中传递的参数却是获取不到的:
代码如下 | 复制代码 |
<?php |
例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) |
例3.str_replace正则替换
代码如下 | 复制代码 |
<? |
首字母变大写:ucwords()
代码如下 | 复制代码 |
<?php $bar = 'HELLO WORLD!'; |
第一个词首字母变大写:ucfirst()
代码如下 | 复制代码 |
<?php $bar = 'HELLO WORLD!'; |
第一个词首字母小写lcfirst()
代码如下 | 复制代码 |
<?php $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 "上传成功!"; } ?> |
调用代码:
代码如下 | 复制代码 |
|
用mime类型限制有局限性,有些文件在上传是不是正常本身的mime,导致上传不成功,而用后缀名限制可以很好的解决这个问题。