php 表单验证代码
function validate($value,$onoff=0,$type=3,$len=100,$msg='填写错误') {
if(trim($value) != ""){ //如果有内容
if(!is_int($len))
exit("<script language=javascript>alert('长度参数不是数字');</script>");
preg_match_all("/[xa0-xff]?./",$value,$arr); //中英文混排算字符串长度
$qswhLen_v=count($arr[0]);
if($qswhLen_v> $len)
{
exit("<script language=javascript>alert('".$msg."\n长度错误!');</script>");
}
if ($type==0){ //类型为0的话 检查数据是否为数字
if(!eregi('^[0-9]+$', $value)){
exit("<script language=javascript>alert('".$msg."\n必须是数字!');</script>");
}
}
else if ($type==1){ //类型为1的话 检查数据是否为字母
if(!eregi('^[a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."\n必须是字母!');</script>");
}
}
else if ($type==2){ //类型为2的话 检查数据是否为中文
if(!eregi("^[".chr(0xa1)."-".chr(0xff)."]+$",$value)){
exit("<script language=javascript>alert('".$msg."\n必须是中文!');</script>");
}
}
else if ($type==3){ //类型为3的话 检查数据是否为字母和数字
if(!eregi('^[0-9a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."\n必须是字母和数字!');</script>");
}
}
else if ($type==4){ //类型为4的话 email检查
if(!eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z_-]+.)+[a-zA-Z]$", $value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==5){ //类型为5的话 日期格式检查
if(!eregi('^[1-2]{1}[0-9]{3}-[0-9]{2}-[0-9]{2}',$value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==6){ //类型为6的话 身份证号码格式检查
if(!preg_match('/(^([d]{15}|[d]{18}|[d]{17}x)$)/',$value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==7){ //类型为7的话 电话号码格式检查
if(!preg_match("/^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$/",$value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==8){ //类型为8的话 邮编格式检查
if(!preg_match("/^[1-9]d{5}$/",$value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==9){ //类型为9的话 url地址格式检查
if(!preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/",$value)){
exit("<script language=javascript>alert('".$msg."\n格式错误!');</script>");
}
}
else if ($type==10){ //类型为10的话 无限制
}else{
echo "<script language=javascript>alert('类别错误');</script>";
exit;
}
}else{
if($onoff!=0){
echo "<script language=javascript>alert('".$msg."\n请添写".$msg."');</script>";
exit;
}
}
}
我们来看看用php写的一款编码转换程序代码哦,把gbk,utf-8之间互转等。function phpUnescape_no($source) {
$decodedStr = "";
$pos = 0;
$len = strlen ($source);
while ($pos < $len) {
$charAt = substr ($source, $pos, 1);
if ($charAt == '%') {
$pos++;
$charAt = substr ($source, $pos, 1);
if ($charAt == 'u') {
// we got a unicode character
$pos++;
$unicodeHexVal = substr ($source, $pos, 4);
$unicode = hexdec ($unicodeHexVal);
$entity = "&#". $unicode . ';';
$decodedStr .= utf8_encode ($entity);
$pos += 4;
}
else {
// we have an escaped ascii character
$hexVal = substr ($source, $pos, 2);
$decodedStr .= chr (hexdec ($hexVal));
$pos += 2;
}
} else {
$decodedStr .= $charAt;
$pos++;
}
}
return $decodedStr;
}
//////////////////////////////////////////////////////////////////////
function phpUnescape($escstr){
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|*|[0-9a-zA-Z.+-_]+/",$escstr,$matches); //prt($matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val){
if (substr($val,0,1)!="%") { //如果是字母数字+-_.的ascii码
$c .=$val;
}
elseif (substr($val,1,1)!="u") { //如果是非字母数字+-_.的ascii码
$x = hexdec(substr($val,1,2));
$c .=chr($x);
}
else { //如果是大于0xFF的码
$val = intval(substr($val,2),16);
if($val < 0x7F){ // 0000-007F
$c .= chr($val);
}elseif($val < 0x800) { // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}else{ // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return UTFtoGBK($c);
}
function UTFtoGBK($CS){
$CodeObj = new Chinese("UTF8","GBK");
return $CodeObj ->Convert($CS);
}
function phpEscape($str){
$returnStr = "";
if (@function_exists('mb_convert_encoding')){
$returnStr = phpEscape_yes($str);
}
else{
$returnStr = phpEscape_no($str);
}
return $returnStr;
}
function phpEscape_yes($string, $encoding = 'GBK') {
$return = '';
for ($x = 0; $x < mb_strlen($string, $encoding); $x ++) {
$str = mb_substr($string, $x, 1, $encoding);
if (strlen($str) > 1) {
$return .= '%u' . strtoupper(bin2hex(mb_convert_encoding($str, 'UCS-2', $encoding)));
} else {
$return .= '%' . strtoupper(bin2hex($str));
}
}
return $return;
}
function phpEscape_no($str){
preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=>$v){
if(ord($ar[$k])>=127){
$tmpString=bin2hex(GBKtoUCS2($v));
if (!eregi("WIN",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}
function GBKtoUCS2($CS){
$CodeObj = new Chinese("GBK","UTF8");
return utf8ToUnicode($CodeObj ->Convert($CS));
}
function utf8ToUnicode($str,$order="big")
{
$ucs2string ="";
$n=strlen($str);
for ($i=0;$i<$n ;$i++ ) {
$v = $str[$i];
$ord = ord($v);
if( $ord<=0x7F){ // 0xxxxxxx
if ($order=="little") {
$ucs2string .= $v.chr(0);
}
else {
$ucs2string .= chr(0).$v;
}
}
elseif ($ord<0xE0 && ord($str[$i+1])>=0x80) { //110xxxxx 10xxxxxx
$a = (ord($str[$i]) & 0x3F )<<6;
$b = ord($str[$i+1]) & 0x3F ;
$ucsCode = dechex($a+$b); //echot($ucsCode);
$h = intval(substr($ucsCode,0,2),16);
$l = intval(substr($ucsCode,2,2),16);
if ($order=="little") {
$ucs2string .= chr($l).chr($h);
}
else {
$ucs2string .= chr($h).chr($l);
}
$i++;
}elseif ($ord<0xF0 && ord($str[$i+1])>=0x80 && ord($str[$i+2])>=0x80) { //1110xxxx 10xxxxxx 10xxxxxx
$a = (ord($str[$i]) & 0x1F)<<12;
$b = (ord($str[$i+1]) & 0x3F )<<6;
$c = ord($str[$i+2]) & 0x3F ;
$ucsCode = dechex($a+$b+$c); //echot($ucsCode);
$h = intval(substr($ucsCode,0,2),16);
$l = intval(substr($ucsCode,2,2),16);
if ($order=="little") {
$ucs2string .= chr($l).chr($h);
}
else {
$ucs2string .= chr($h).chr($l);
}
$i +=2;
}
}
return $ucs2string;
}
////////////////////////////////////////////////////////
function unescapeFuncMake($Txt){
if ($Txt[2]!="*") return $Txt;
$ETxt = "";
$MTxt = "egy+nb@QwXvCWjKPRxVzDl/h7EOMtSa9f6*FpNr81i_0kqdG2LBcuZIAJYo34m-sT%5.UH3SYZ0hzt/y@qDTNECf1BpujiO.X6ks+oIR8GPVg9wbm%xJvKLWrn*F4HAe-QladM27Uc5_";
$TTxtnum = substr($Txt,0,2);
$TTxt = substr((substr($MTxt,70).substr($MTxt,70)),$TTxtnum);
for ($ii=3; $ii<strlen($Txt); $ii++){
$w = ($ii-3)%10;
$k = strpos($TTxt,$Txt[$ii],$w)-$w;
$ETxt .= $MTxt[$k];
}
return phpUnescape($ETxt);
}
function escapeFuncMake($Txt){
if ($Txt=="" || $Txt[2]=="*") return $Txt;
$MTxt = "egy+nb@QwXvCWjKPRxVzDl/h7EOMtSa9f6*FpNr81i_0kqdG2LBcuZIAJYo34m-sT%5.UH3SYZ0hzt/y@qDTNECf1BpujiO.X6ks+oIR8GPVg9wbm%xJvKLWrn*F4HAe-QladM27Uc5_";
$BTxt = phpEscape($Txt);
$TTxt = floor(mt_rand(0,50));
$ETxt = $TTxt.($TTxt>9?"*":"**");
for ($ii=0; $ii<strlen($BTxt); $ii++){
$k = strpos($MTxt,$BTxt[$ii])+($ii%10);
$ETxtstr = substr((substr($MTxt,70).substr($MTxt,70)),$TTxt);
$ETxt .= $ETxtstr[$k];
}
return $ETxt;
}
class mySqlClass {//定义整个数据库访问类 mySqlClass
var $querynum = 0;//查询次数变量
//打开服务器的连接------------------------------------------------------------------------------------------------------//
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
//mysql_connect -- 打开一个到 MySQL 服务器的连接
//mysql_pconnect -- 打开一个到 MySQL 服务器的持久连接
//mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别。
//首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
//其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。
//判断是否开启持久连接设置,开启则使用持久连接,未开启则使用一般连接
if($pconnect) {
if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
}
//设置字符编码如果数据库版本大于4.1且全局变量中字符集参数不为空---------------------------------------------------------//
if($this->version() > '4.1') {
//$charset = 'gbk';
$charset = 'utf-8';
$dbcharset = '';
if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
//mysql_query -- 发送一条 MySQL 查询
//设置NAMES参数为相应字符集参数值,避免PHP读取mysql数据库时出现中文乱码
if($dbcharset) {
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary");
}
//如果数据库版本大于5.0设置sql_mode参数为空
if($this->version() > '5.0.1') {
mysql_query("SET sql_mode=''");
}
}
if($dbname) {//如果数据库名存在
//mysql_select_db -- 选择 MySQL 数据库
//如果选择数据库未成功
mysql_select_db($dbname);
}
}
//mysql_select_db -- 选择 MySQL 数据库---------------------------------------------------------------------//
function select_db($dbname) {
return mysql_select_db($dbname);
}
//读取一条数据记录函数---------------------------------------------------------------------//
//mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
//mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。
//MYSQL_ASSOC 返回的数据列使用字段名作为数组的索引名。
//MYSQL_BOTH 返回的数据列使用字段名及数字索引作为数组的索引名。
//MYSQL_NUM 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始,表示返回结果的第一个字段。
function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
}
//查询数据库函数---------------------------------------------------------------------//
function query($sql, $type = '') {
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql)) && $type != 'SILENT') {
$this->halt('0');
}
//查询次数+1
$this->querynum++;
//返回查询结果资源
return $query;
}
//返回影响记录数---------------------------------------------------------------------//
//如果该函数成功执行,将返回记录行数;如果失败,将返回“-1”。
function affected_rows() {
return mysql_affected_rows();
}
//返回上一个 MySQL 操作产生的文本错误信息---------------------------------------------//
function error() {
return mysql_error();
}
//返回上一个 MySQL 操作产生的文本错误信息 整数型态 ------------------------------------//
function errno() {
return intval(mysql_errno());
}
//mysql_result -- 返回结果集中的字段值---------------------------------------------//
function result($query, $row) {
$query = @mysql_result($query, $row);
return $query;
}
//mysql_num_rows -- 取得结果集中行的数目---------------------------------------------//
function num_rows($query) {
$query = mysql_num_rows($query);
return $query;
}
//mysql_num_fields -- 取得结果集中字段的数目---------------------------------------------//
function num_fields($query) {
return mysql_num_fields($query);
}
//mysql_free_result -- 释放所使用的结果内存---------------------------------------------//
function free_result($query) {
return mysql_free_result($query);
}
//mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID---------------------------------------------//
function insert_id() {
$id = mysql_insert_id();
return $id;
}
//mysql_fetch_row -- 从结果集中取得一行作为数值型数组---------------------------------------------//
function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
}
//mysql_field_name -- 取得结果中指定字段的字段名---------------------------------------------//
function field_name($query,$num=0){
return mysql_field_name($query,$num);
}
//mysql_fetch_field -- 从结果集中取得列信息并作为对象返回 $num=0 表示第一个字段-------------------------------//
function fetch_fields($query,$num=0) {
return mysql_fetch_field($query,$num);
}
//mysql_get_server_info -- 取得 MySQL 服务器信息---------------------------------------------//
function version() {
$MySqlVer = mysql_get_server_info();
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = $this->result(($this->query("SELECT VERSION()")), 0);
}
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = '0';
}
return $MySqlVer;
}
//mysql_close -- 关闭 MySQL 连接---------------------------------------------------------------------//
function close() {
return @mysql_close();
}
//异常处理函数 halt ---------------------------------------------------------------------//
function halt($mess) {
global $DataBaseBadFlag;
//$dberror = $this->error();
//$dberrno = $this->errno(); //1114人员连接上限
if ($mess=="1"){
if ($DataBaseBadFlag!=1){
echo("<meta http-equiv='refresh'content=0;URL='pagedataerr.php'>");
}
else{
if (!@function_exists('phpEscape')){
require("escape.php");
}
echo phpEscape("Lock = false;location.href='pagedataerr.php';");
}
exit();
}
else{
return false;
}
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
set_time_limit(0);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<?php
$filecontent = getcontent('http://111cn.net');
$start = 's;
$end ='b;
$art = 311;
$str = '';
preg_match('/<title>(.+?)</title>/', $filecontent, $arr);/* 取得标题*/
$init =explode($start,$filecontent);
$array = explode($end,$init[1]);
$str =$str.$arr[1].replaceHtml($array[0]);
function getcontent($url)
{
$retmsg=file_get_contents($url);
return $retmsg;
}
function savato($filename,$content){
if( !empty( $content ) ){
$info = fopen($filename,'w+');
fwrite($info,$content);
fclose($info);
echo "保存文件 $filename 成功<br>";
}else{
echo '文章更新失败,<a href=get.php >点击重新更新</a>';
}
}
function replaceHtml($str){
$temp = str_replace(' ',' ',$str);
$temp = str_replace('<BR>',chr(10),$temp);
$ return strip_tags($temp);
}
?>
</body>
</html>
global $charset;
if(strlen($string) <= $length) {
return $string;
}
$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
$strcut = '';
if(strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif (194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif (224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif (240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif (248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif ($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
$strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
return $strcut.$dot;
}
相关文章
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
Django def clean()函数对表单中的数据进行验证操作
这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-09- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
- 这篇文章主要为大家详细介绍了JavaScript实现密码框输入验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-01
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
php导出csv格式数据并将数字转换成文本的思路以及代码分享
php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07- 这篇文章主要介绍了Nest.js 授权验证的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
- ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25