php 根据HTTP_USER_AGENT 判断用户浏览器类型

 更新时间:2016年11月25日 15:13  点击:1355
php 根据HTTP_USER_AGENT 判断用户浏览器类型


function browsers(){
   global $HTTP_USER_AGENT ;
   if (isset($HTTP_USER_AGENT)){
    $sAgent = $HTTP_USER_AGENT;
   }else{
    $sAgent = $_SERVER['HTTP_USER_AGENT'];
   }
   if (strpos($sAgent,'MSIE') !== false && strpos($sAgent,'mac') === false && strpos($sAgent,'Opera') === false){
    $iVersion = (float)substr($sAgent,strpos($sAgent,'MSIE') + 5,3);
    return ($iVersion >= 5.5) ;
   }else if (strpos($sAgent,'Gecko/') !== false){
    $iVersion = (int)substr($sAgent,strpos($sAgent,'Gecko/') + 6,8);
    return ($iVersion >= 20030210) ;
   }else{
    return false;
   }
  }

fck调用与使用方法


function load($areaname){
   $this->initialize($areaname);
   return $this->loadhtml() ;
  }

  function loadhtml(){
   $htmlareavalue = htmlspecialchars($this->areavalue) ;
   $html = '<div>' ;
   if ($this->browsers()){
    if (isset($_GET['fcksource']) && $_GET['fcksource'] == "true"){
     $File = 'fckeditor.original.html' ;
    }else{
     $File = 'fckeditor.html' ;
    }
    $Link = "{$this->rooteditor}editor/{$File}?InstanceName={$this->areaname}";
    if ($this->bottontype != ''){
     $Link .= "&amp;Toolbar={$this->bottontype}";
    }
    $html .= "<input type="hidden" id="{$this->areaname}" name="{$this->areaname}" value="{$htmlareavalue}" style="display:none" />";// Render the linked hidden field.
    $html .= "<input type="hidden" id="{$this->areaname}___configure" value="" . $this->loadconfigure() . "" style="display:none" />";// Render the configurations hidden field.
    $html .= "<iframe id="{$this->areaname}___Frame" src="{$Link}" width="{$this->areawidth}" height="{$this->areaheight}" frameborder="0" scrolling="no"></iframe>";// Render the editor IFRAME.
   }else{
    if (strpos($this->areawidth,'%') === false){
     $areawidthCSS = $this->areawidth . 'px' ;
    }else{
     $areawidthCSS = $this->areawidth;
    }
    if ( strpos( $this->areaheight, '%' ) === false){
     $areaheightCSS = $this->areaheight . 'px' ;
    }else{
     $areaheightCSS = $this->areaheight ;
    }
    $html .= "<textarea name="{$this->areaname}" rows="4" cols="40" style="width: {$areawidthCSS}; height: {$areaheightCSS}">{$htmlareavalue}</textarea>" ;
   }
   $html .= '</div>' ;
   return $html ;
  }

function initialize($areaname){
   global $urlconf;
   $this->areaname   = $areaname ;
   $this->rooteditor  = $urlconf['domains'].'textarea/fck/' ;
   $this->areawidth  = '100%';
   $this->areaheight  = '400px';
   $this->bottontype  = 'Default';
   $this->areavalue  = $this->areavalue ? $this->areavalue : '';
   $this->configure  = array() ;
  }

  function dater($data){
   $this->areavalue = stripslashes($data);
  }

php 用户注册程序[防止中文注册]

<?php
header("Content-type:text/html;charset=gb2312");
require_once('inc/connect.php');
$xm=isset($_GET['txt'])?$_GET['txt']:'null';
$ta=isset($_GET['tag'])?$_GET['tag']:3;

if( $ta==1 ){
 if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $xm)){
   echo("<div id='error'>对不起,不能使用中文作为用户名! </div>");
   exit();
  }
 if($xm=='null' || $xm=='' || strlen($xm)>10 || strlen($xm)<3){
  echo("<div id='error'>对不起,用户由3-12Aa_zZ及数字组成! </div>");
  exit();
 }else{
  $result=mysql_query("select m_uid from wk_member where m_uid='$xm' ") or die('Error !'.mysql_error());
  if(!mysql_num_rows($result)){
   echo("<div id='success'><font color=red>&nbsp;&nbsp;&nbsp;&nbsp;恭喜你!此用户可以注册!</font> </div>");
  }else{
   echo("<div id='error'>对不起,用户己被注册请选择其它名称!</div>");
  }
 }

}elseif( $ta==0){
 if(@file_get_contents($xm)){
  echo '<div id="success">&nbsp;&nbsp;&nbsp;&nbsp;博客地址可以访问</div>';
 }else{
  echo '<div id="error">对不起,你输入的博客地址不能正常访问<div >';
 }
}else{
 echo "<div id='error'>对不起,无效的操作!</div>";
}
?>

 

 

php 超级强大的数据库连接类

function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = TRUE, $dbcharset2 = '') {

  $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';
  if(!$this->link = @$func($dbhost, $dbuser, $dbpw, 1)) {
   $halt && $this->halt('Can not connect to MySQL server');
  } else {
   if($this->version() > '4.1') {
    global $charset, $dbcharset;
    $dbcharset = $dbcharset2 ? $dbcharset2 : $dbcharset;
    $dbcharset = !$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $charset) : $dbcharset;
    $serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
    $serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
    $serverset && mysql_query("SET $serverset", $this->link);
   }
   $dbname && @mysql_select_db($dbname, $this->link);
  }

 }

 function select_db($dbname) {
  return mysql_select_db($dbname, $this->link);
 }

 function fetch_array($query, $result_type = MYSQL_ASSOC) {
  return mysql_fetch_array($query, $result_type);
 }

 function fetch_first($sql) {
  return $this->fetch_array($this->query($sql));
 }

 function result_first($sql) {
  return $this->result($this->query($sql), 0);
 }

 function query($sql, $type = '') {

  global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes;

  if(defined('SYS_DEBUG') && SYS_DEBUG) {
   @include_once DISCUZ_ROOT.'./include/debug.func.php';
   sqldebug();
  }

  $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
   'mysql_unbuffered_query' : 'mysql_query';
  if(!($query = $func($sql, $this->link))) {
   if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'RETRY') {
    $this->close();
    require DISCUZ_ROOT.'./config.inc.php';
    $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset);
    $this->query($sql, 'RETRY'.$type);
   } elseif($type != 'SILENT' && substr($type, 5) != 'SILENT') {
    $this->halt('MySQL Query Error', $sql);
   }
  }

  $this->querynum++;
  return $query;
 }

 function affected_rows() {
  return mysql_affected_rows($this->link);
 }

 function error() {
  return (($this->link) ? mysql_error($this->link) : mysql_error());
 }

 function errno() {
  return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
 }

 function result($query, $row = 0) {
  $query = @mysql_result($query, $row);
  return $query;
 }

 function num_rows($query) {
  $query = mysql_num_rows($query);
  return $query;
 }

 function num_fields($query) {
  return mysql_num_fields($query);
 }

 function free_result($query) {
  return mysql_free_result($query);
 }

 function insert_id() {
  return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
 }

 function fetch_row($query) {
  $query = mysql_fetch_row($query);
  return $query;
 }

 function fetch_fields($query) {
  return mysql_fetch_field($query);
 }

 function version() {
  if(empty($this->version)) {
   $this->version = mysql_get_server_info($this->link);
  }
  return $this->version;
 }

 function close() {
  return mysql_close($this->link);
 }

php日期函数问题

<?php
// returns timestamp for 12:25:23 9-Jul-2006
echo gmmktime(12,25,23,7,9,2006);
?>

gmdate($format, $ts)

此函数将UNIX时间标签格式化成可人为阅读的日期字符串。此日期字符串以GMT(非当地时间)表示。

用GMT表示时间标签时应用此函数。

 

<?php
// get date as associative array
$arr = getdate();
echo "Date is " . $arr['mday'] . " " . $arr['weekday'] . " " . $arr['year'];
echo "Time is " . $arr['hours'] . ":" . $arr['minutes'];
?>

mktime($hour, $minute, $second, $month, $day, $year)

此函数的作用与getdate()的作用相反:它由一系列的日期与时间值生成一个UNIX时间标签(GMT时间1970年1月1日到现在消逝的秒数)。不用自变量时,它生成当前时间的UNIX时间标签。

用此函数获得即时时间的UNIX时间标签。这种时间标签通常用于许多数据库与程序语言中。


<?php
// returns timestamp for 13:15:23 7-Jun-2006
echo mktime(13,15,23,6,7,2006);
?>

date($format, $ts)

此函数将UNIX时间标签格式化成一个可人为阅读的日期字符串。它是PHP日期/时间API中功能最为强大的函数,可用在一系列的修正值中,将整数时间标签转变为所需的字符串格式。

为显示格式化时间或日期时,应用此函数。


<?php
// format current date
// returns "13-Sep-2005 01:16 PM"
echo date("d-M-Y h:i A", mktime());
?>

strtotime($str)

此函数将可人为阅读的英文日期/时间字符串转换成UNIX时间标签。

应用此函数将非标准化的日期/时间字符串转换成标准、兼容的UNIX时间标签。


<?php
// returns 13-Sep-05
echo date("d-M-y", strtotime("today"));
// returns 14-Sep-05
echo date("d-M-y", strtotime("tomorrow"));
// returns 16-Sep-05
echo date("d-M-y", strtotime("today +3 days"));
?>

strftime($format,$ts)

如前面的setlocale()函数定义的那样,此函数将UNIX时间标签格式化成适用于当前环境的日期字符串。

应用此函数建立与当前环境兼容的日期字符串。


<?php
// set locale to France (on Windows)
setlocale(LC_TIME, "fra_fra");

// format month/day names
// as per locale setting
// returns "septembre" and "mardi"

echo strftime("Month: %B ");
echo strftime("Day: %A ");
?>

 

 


<?php
// format current date into GMT
// returns "13-Sep-2005 08:32 AM"
echo gmdate("d-M-Y h:i A", mktime());
?>

date_default_timezone_set($tz)、date_default_timezone_get()

此函数此后所有的日期/时间函数调用设定并恢复默认的时区。

注:此函数仅在PHP 5.1+中有效。

此函数是一个方便的捷径,可为以后的时间操作设定时区。
microtime()

如前面的setlocale()函数定义的那样,此函数将UNIX时间标签格式化成适用于当前环境的日期字符串。

应用此函数建立与当前环境兼容的日期字符串。


<?php
// get starting value
$start = microtime();

// run some code
for ($x=0; $x<1000; $x++) {
$null = $x * $x;
}

// get ending value
$end = microtime();

// calculate time taken for code execution
echo "Elapsed time: " . ($end - $start) ." sec";
?>

gmmktime($hour, $minute, $second, $month, $day, $year)

此函数由一系列用GMT时间表示的日期与时间值生成一个UNIX时间标签。不用自变量时,它生成一个当前GMT即时时间的UNIX时间标签。

用此函数来获得GMT即时时间的UNIX时间标签。

<?php
// set timezone to UTC
date_default_timezone_set('UTC');
?>

checkdate($month,$date,$year)

如果应用的值构成一个有效日期,则该函数返回为真。例如,对于错误日期2005年2月31日,此函数返回为假。

在日期用于计算或保存在数据库中之前,可用此函数检查日期并使日期生效。

<?php
// returns false
echo checkdate(2,30,2005) ? "valid" : "invalid";
// returns true
echo checkdate(4,6,2010) ? "valid" : "invalid";
?>

getdate($ts)

在没有自变量的情况下,该函数以结合数组的方式返回当前日期与时间。数组中的每个元素代表日期/时间值中的一个特定组成部分。可向函数提交可选的时间标签自变量,以获得与时间标签对应的日期/时间值。

应用此函数来获得一系列离散的,容易分离的日期/时间值。

[!--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
  • 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
  • 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
  • php有效防止同一用户多次登录

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

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

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • 如何使用 JavaScript 操作浏览器历史记录 API

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

    这篇文章主要介绍了Python获取浏览器窗口句柄过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26
  • vue如何调用浏览器分享功能详解

    这篇文章主要给大家介绍了关于vue如何调用浏览器分享的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-20
  • js判断浏览器类型,版本的代码(附多个实例代码)

    在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。 JavaScrip...2014-05-31
  • JAVA读取文件流,设置浏览器下载或直接预览操作

    这篇文章主要介绍了JAVA读取文件流,设置浏览器下载或直接预览操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-09
  • 网页自动调用国内双核浏览器的极速模式的实现方法

    由于国内好几个浏览器都是双核浏览器(蛋痛,做一个浏览器壳就说国产,而且使用率高),有时打开网页会出现不兼容模式,在极速模式下是好的,现在我们来用代码实现网页自动调用国内...2016-09-20
  • C# 模拟浏览器并自动操作的实例代码

    这篇文章主要介绍了C# 模拟浏览器并自动操作的实例代码,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
  • 微信小程序用户授权最佳实践指南

    这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
  • Python爬虫之Selenium实现关闭浏览器

    这篇文章主要介绍了Python爬虫之Selenium实现关闭浏览器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-04