php 数字型转换成字符型方法
$str = "10";
$num = (int)$str;
//
$str = "10";
$num = (int)$str;
if ($str === 10) echo "string";
if ($num === 10) echo "integer";
/*
结果为
integer
*/
echo gettype($str); //string
echo gettype($num); //integer
匹配email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址url的正则表达式:[a-za-z]+://[^s]*
下面看一实例
<body onload="f.a.select();">
<?php
echo 'a:'.htmlspecialchars($a);
echo '<br>a1:';
$a1 = eregi_replace('(^[_.][:alnum:]-]+@([[:alnum:]][[:alnum:]-]*.)+[[:alpha:]]{2,3}$)',' <a href="mailto:1">1</a> ', $a) ;
echo htmlspecialchars($a1);
echo "<br>a1:$a1";
echo '<br>a2:';
$a2 = eregi_replace('([[:alnum:]]+://([[:alnum:]][[:alnum:]-]*.)+[[:alpha:]]{2,3}([#?/][^#?/][:space:]][^[:space:]]*)?)',
'<a href="1" target="_blank">1</a>', $a);
echo htmlspecialchars($a2);
echo "<br>a2:$a2";
// eregi('^[_.][:alnum:]-]+@([[:alnum:]][[:alnum:]-]*.)+[[:alpha:]]{2,3}$',$a) or die("not a email");
?>
<form name="f">
<input name="a" value="<?php echo $a; ?>">
<input type="submit" >
</form>
</body>
关于正则表达式常用数据
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-za-z][a-za-z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
字串1
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯qq号:[1-9][0-9]{4,}
评注:腾讯qq号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[a-za-z]+$ //匹配由26个英文字母组成的字符串 字串4
^[a-z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[a-za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
一款简单的php教程 mysql教程考试系统,实例方法是判断题目数组是否为空,为空则从题库中随机取出12道题 id
<?php
include './inc/header.php';
if($_session['arr'] == ''){ #判断题目数组是否为空,为空则从题库中随机取出12道题 id
$sql = 'select * from an';
$select = $db->select($sql);
for($i=0;$i<count($select);$i++){
$aid .= $select[$i]['id'].',';
}
$arr = explode(',',substr($aid,0,strlen($aid)-1));
shuffle($arr);
$_session['arr'] = array_slice($arr,0,12);
}
$array = $_session['arr'];
if($_server['request_method'] == "post"){
if($_session['arr1'] == ""){ #arr1存的是已答题的id
$ary = $array;
array_shift($ary); #每答完一道题后,删除数组第一位
$_session['arr1'] = $ary;
}else{
$ary = $_session['arr1'];
array_shift($ary);
$_session['arr1'] = $ary;
}
$id = $_post['id'];
$answer = $_post['answer'];
$sqq = 'select * from an where id='.$id.' and answer="'.$answer.'"';
$qus = mysql_query($sqq);
$rows = @mysql_num_rows($qus);
if($rows){
$_session['right'] .= $id.','; #将答对题id存到session['right']
$rightarr = explode(',',substr($_session['right'],0,strlen($_session['right'])-1)); #判断对题数
if(count($rightarr) < 10){ #如果小于10则继续答下一题
$sql2 = 'select * from an where id='.$ary[0];
$sel = $db->select($sql2);
}elseif(count($rightarr) == 10){ #如果等于10则跳出此次问答
$time = time();
$_session['jiang'] = md5($time);
#echo '<script>location.href="right.php?uid='.$time.'";</script>';
$success = array('second'=>'3','url'=>'right.php?uid='.$time,'title'=>'答对十题','right'=>'恭喜你,你已连续答对十道题,将跳转到兑奖页面。');
$smarty->assign('msg',$success);
$smarty->display('success.html');
exit();
}
}else{
$_session['error'] .= $id.','; #将答错题id存到session['error']
$errorarr = explode(',',substr($_session['error'],0,strlen($_session['error'])-1)); #判断错题数
if(count($errorarr) < 2){
$sql2 = 'select * from an where id='.$ary[0];
$sel = $db->select($sql2);
}elseif(count($errorarr) == 2){ #如果答错两题,则重新计数
unset($_session['right']);
unset($_session['error']);
unset($_session['arr1']);
unset($_session['arr']);
unset($_session['num']);
session_destroy();
#echo '<script>location.href="index.php";</script>';
$success = array('second'=>'3','url'=>'index.php','title'=>'答错两题','error'=>'对不起,你已连续答错两题,将重新计算');
$smarty->assign('msg',$success);
$smarty->display('success.html');
exit();
}
}
echo 'right:'.$_session['right'].'<br />';
echo 'error:'.$_session['error'].'<br />';
}else{
$sqll = 'select * from an where id='.$array[0];
$sel = $db->select($sqll);
}
if(isset($_session['num'])){ #目前答第几题
$num = $_session['num'] + 1;
$_session['num'] = $num;
#echo $_session['num'].'<br />';
#echo $num;
}else{
$num = 1;
$_session['num'] = $num;
}
$smarty->assign('num',$num);
$smarty->assign('ob',$sel);
$smarty->display('index.html');
//session.inc.php教程文件:定义session的文件存储,session解决方案,就是要提供在php脚本中定义全局变量的方法,使得这个全局变量在同一个session中对于所有的php脚本都有效。上面我们提到了,session不是一个简单的时间概念,一个session中还包括了特定的用户和服务器。因此更详细地讲,在一个session定义的全局变量的作用范围,是指这个session所对应的用户所访问的所有php。 例如a用户通过session定义了一个全局变量$user=“wind”中,而b用户通过session定义的全局变量$user=“jane”。那么在a用户所访问的php脚本中,$user的值就是wind。php如何创建session
开始介绍如何创建 session。非常简单,真的。 启动 session 会话,并创建一个 $admin 变量: // 启动 session session_start(); // 声明一个名为 admin 的变量,并赋空值。 $_session["admin"] = null; ?> 如果你使用了 seesion,或者该 php 文件要调用 session 变量,那么就必须在调用 session 之前启动它,使用 session_start() 函数。其它都不需要你设置了,php 自动完成 session 文件的创建。 执行完这个程序后,我们可以到系统临时文件夹找到这个 session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位编码后的随机字符串。用编辑器打开它,看一下它的内容: admin|n;
分页的就是根据符合条件的总记录除上每页显示的记录就等页数,原理相当简单了公式为 $total = ceil($toalRecord / $perpageNum);<?php
//定义一个超全局数组$_session = array();
//定义文件句柄
$fp = null;
//用户自定义的开启session函数function session_file_start() {
//1. 首先判断浏览器有没有发送cookie值
if (isset($_cookie['fileid'])) {
//2. 接收cookie值
$filename = $_cookie['fileid'];
//3. 打开文件,用于读写if (file_exists($filename)) {
$globals['fp'] = fopen($filename, 'r+');
} else {
$globals['fp'] = fopen($filename, 'w+');
}
} else {
//2. 设置一个文件,并把该文件名放到cookie中
$filename = date('ymdhis');
setcookie('fileid', $filename, time()+60*60*24);
//3. 打开文件,用于读写$globals['fp'] = fopen($filename, 'w+');
} //end of if-else
//4. 把文件中的数据存储到超全局数组$_session中while (!feof($globals['fp'])) {
//读取文件中的一行
$buffer = fgets($globals['fp']);
//处理所读取的这一行
$tmparr = explode('=', trim($buffer, 'rn'));
//添加到session数组中if (count($tmparr) == 2) {
$globals['_session'][$tmparr[0]] = $tmparr[1];
}
} //end of while
} //end of session_file_start()
//注册会话变量的函数function session_file_register($key, $val) {
//设定session变量
$globals['_session'][$key] = $val;
//把该变量放到文件中fseek($globals['fp'], 0, seek_end);
fwrite($globals['fp'], "$key=$valrn");
} //end of session_file_register()
//结束会话变量function session_file_destroy() {
//1. 关闭文件指针
fclose($globals['fp']);
$fp = null;
//2. 设置session数组为空$globals['_session'] = array();
} //end of session_file_destroy()//测试代码文件:1.php
<?php//确定编码格式
header('content-type: text/html; charset=utf-8');
include("session-file.php");
//测试函数://开启会话
session_file_start();
//注册会话变量$key = 'username';
$val = 'lsl';
session_file_register($key, $val);
session_file_register('username', 'lisa');
//打印session数组echo $_session['username'];
?><a href="2.php">下一页</a>
//测试文件:2.php
<?php//确定编码格式
header('content-type: text/html; charset=utf-8');
include("session-file.php");
//测试函数://开启会话
session_file_start();
echo $_session['username'];
?>
function outpege($ps教程,$page)
{
// $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
$max = ($page >= 5)? $page+5:10;
if($max > $ps)$max =$ps;
$min =($page-5);
if($min<1) $min =1;
if($page>1)$pagelist = "<a href="?page=1">首页</a>";
for($i=$min;$i<=$max;$i++){
$pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
}
$pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
return $pagelist;
}
分页代码二
// 分页, {总记录数,每页显示数,当前页,最多显示多少页,分页url}
function page($toalrecord, $perpagenum, $curpage, $url) {
$total = ceil($toalrecord / $perpagenum);
$pagearr = array_slice(range(1, $total), max(0, $curpage - ~~($perpagenum / 2)), $perpagenum);
if($pagearr[0] != 1) {
array_unshift($pagearr, sprintf("<a href='{$url}%s'><<</a>", $pagearr[0] - 1));
}
if($pagearr[count($pagearr)-1] != $total) {
array_push($pagearr, sprintf("<a href='{$url}%s'>>></a>", $pagearr[count($pagearr)-1] + 1));
}
foreach ( $pagearr as $i => &$v ) {
$v = is_numeric($v) ? "<a href='{$url}{$v}'>{$v}</a>" : $v;
}
return "<a href='{$url}'>首页</a>" . implode('', $pagearr) . "<a href='{$url}" . $total . "'>尾页</a>";
}
调用
page(99/*总记录*/, 9/*每页显示数*/, page/*当前页,从1开始*/, 'http://www.111cn.net/?page='/*url前缀*/);
相关文章
使用PHP+JavaScript将HTML页面转换为图片的实例分享
这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下把普通照片快速转换成卡通效果的教程,各位想知道具体制作步骤的使用者们,那么下面就快阿里跟着小编一起看一...2016-09-14
- 这篇文章主要介绍了Javascript类型转换的规则实例解析,涉及到javascript类型转换相关知识,对本文感兴趣的朋友一起学习吧...2016-02-27
- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04