Php本身没有一个完全意义上的页面跳转函数,也许Header函数算一个,但是,它只能用于页面的第一行。如果放在Php页面的最后位置,除非前面的Php没有输出任何字符,否则,会报错。
下面提供三种Php自动页面跳转的方法,其一就是使用Header函数,其二则是使用HTML固有标记,当然,这个方法不仅仅可以应用于Php,同样可以应用于ASP,.Net,以及Jsp中,第三种方法是输出Javascript,利用Js代码,达到Php页面自动跳转的目的,同样的,这种方法也同样适用于Php以外的其他语言,只是相应语言代码不同而已。
一、用HTTP头信息(Header函数)
也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("Context-type: xxxx/xxxx"),页面的属性("No cache", "Expire")等等。
用HTTP头信息使Php自动跳转到另外一个页面的方法如下:
<?php
$url = czbin.php
Header("HTTP/1.1 303 See Other");
Header("Location: $url");
exit;
?>
注意一下,"Localtion:"后面有一个空格。
二、利用HTML标记(META中的REFRESH属性)
用HTML标记,就是用META的REFRESH标记,举例如下:
<?php $url = czbin.php;?>
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="10; URL=<? echo $url;?>>
</HEAD>
<BODY>
</BODY>
</HTML>
注:这里的CONTENT="10 的意思是说10秒以后跳转。
三、用JAVASCRIPT脚本来实现
举例如下:
<?php
$url=czbin.php;
echo "<!--<SCRIPT LANGUAGE="JavaScript">";
echo "location.href='$url'";
echo "</SCRIPT>-->";
?>
下面提供三种Php自动页面跳转的方法,其一就是使用Header函数,其二则是使用HTML固有标记,当然,这个方法不仅仅可以应用于Php,同样可以应用于ASP,.Net,以及Jsp中,第三种方法是输出Javascript,利用Js代码,达到Php页面自动跳转的目的,同样的,这种方法也同样适用于Php以外的其他语言,只是相应语言代码不同而已。
一、用HTTP头信息(Header函数)
也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("Context-type: xxxx/xxxx"),页面的属性("No cache", "Expire")等等。
用HTTP头信息使Php自动跳转到另外一个页面的方法如下:
<?php
$url = czbin.php
Header("HTTP/1.1 303 See Other");
Header("Location: $url");
exit;
?>
注意一下,"Localtion:"后面有一个空格。
二、利用HTML标记(META中的REFRESH属性)
用HTML标记,就是用META的REFRESH标记,举例如下:
<?php $url = czbin.php;?>
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="10; URL=<? echo $url;?>>
</HEAD>
<BODY>
</BODY>
</HTML>
注:这里的CONTENT="10 的意思是说10秒以后跳转。
三、用JAVASCRIPT脚本来实现
举例如下:
<?php
$url=czbin.php;
echo "<!--<SCRIPT LANGUAGE="JavaScript">";
echo "location.href='$url'";
echo "</SCRIPT>-->";
?>
RSS 2.0中要求标签的格式为RFC822标准,即像这样的时间格式。
Sun, 10 Jun 2007 09:34:50 +0800
在Php中date()函数可以直接把UNIX时间戳格式的时间转换为RFC822
某些网站上,说date函数是作用于timestamp的,但是就我在一台Windows操作系统和另外一台UNIX操作系统机器上的测试结果来说,用date函数转换MySQL中timestamp类型的时间格式,得到的结果永远都是Thu, 01 Jan 1970 07:33:27 +0700
具体是timestamp并不是指MySQL中的timestamp,还是真的存在错误,我们不需要关心了。
言归正传,如果你只是想生成一个RFC822标准的时间格式,那么你可以在添加信息,比如新闻或是Blog文章的时候,用time()函数取得发布信息时的UNIX时间戳并写进数据库Date字段中,然后在生成RSS时
<?php date("r",$rs->Date)?>
就可以了。
但如果你是想把timestamp类型的时间格式转换为RFC822,那么可能就要麻烦一点点。
首先把timestamp中的年月日时分秒的信息单独取出(具体取出的方法无所谓,可以用split分割,也可以substr截取等等),然后用mktime( 时, 分, 秒, 月, 日, 年)函数得到一个UNIX时间戳,再用date函数转换就可以了。
Sun, 10 Jun 2007 09:34:50 +0800
在Php中date()函数可以直接把UNIX时间戳格式的时间转换为RFC822
某些网站上,说date函数是作用于timestamp的,但是就我在一台Windows操作系统和另外一台UNIX操作系统机器上的测试结果来说,用date函数转换MySQL中timestamp类型的时间格式,得到的结果永远都是Thu, 01 Jan 1970 07:33:27 +0700
具体是timestamp并不是指MySQL中的timestamp,还是真的存在错误,我们不需要关心了。
言归正传,如果你只是想生成一个RFC822标准的时间格式,那么你可以在添加信息,比如新闻或是Blog文章的时候,用time()函数取得发布信息时的UNIX时间戳并写进数据库Date字段中,然后在生成RSS时
<?php date("r",$rs->Date)?>
就可以了。
但如果你是想把timestamp类型的时间格式转换为RFC822,那么可能就要麻烦一点点。
首先把timestamp中的年月日时分秒的信息单独取出(具体取出的方法无所谓,可以用split分割,也可以substr截取等等),然后用mktime( 时, 分, 秒, 月, 日, 年)函数得到一个UNIX时间戳,再用date函数转换就可以了。
<?
include "inc/admincheckLogin.php";
include "../inc/config.php";
$PWARRAY=mysql_fetch_array(mysql_query("SELECT * FROM shm_siteadmin WHERE user='".$power_user."'"));
$name=$PWARRAY[name];$right=$PWARRAY[adright];$state=$PWARRAY[state];
function get_image_size($pix_path,$w,$h){
$size=getimagesize($pix_path);
$ow=$size[1];
$oh=$size[0];
$w=($oh>$h and $ow<=$w and $oh>$ow)?($ow*$h/$oh):$w;
$h=($oh<=$h and $ow>$w and $oh<$ow)?($oh*$w/$ow):$h;
$w=($oh>$h and $ow>$w and $oh>=$ow)?($ow*$h/$oh):$w;
$h=($oh>$h and $ow>$w and $oh<=$ow)?($oh*$w/$ow):$h;
$b_size[1]=$w;
$b_size[0]=$h;
if($oh<=$h and $ow<=$w){
$b_size[1]=$ow;
$b_size[0]=$oh;
}
return $b_size;
}
DEFINE ("DEBUG", 0);
?>
<?
function create_table_sql_string($tablename){
$sql_string = "CREATE TABLE $tablename";
$result = mysql_query("DESCRIBE $tablename");
if (DEBUG) echo "field_info\n\n";
$field_string = "";
while ($field_info = mysql_fetch_array($result)) {
$field_name = $field_info[0];
$field_type = $field_info[1];
$field_not_null = ($field_info[2] == "YES") ? "" : " NOT NULL";
$field_default = ($field_info[4] == NULL) ? "" : sprintf(" default '%s'", $field_info[4]);;
$field_auto_increment = ($field_info[5] == NULL) ? "" : sprintf(" %s", $field_info[5]);
$field_string = sprintf("%s, %s %s%s%s%s", $field_string, $field_name, $field_type, $field_not_null, $field_auto_increment, $field_default);
}
$result = mysql_query("SHOW INDEX FROM $tablename");
if (DEBUG) echo "\nindex_info\n\n";
$index_string = "";
while ($index_info = mysql_fetch_array($result)) {
$index_name = $index_info[2];
$index_unique = $index_info[1];
$index_field_name = $index_info[4];
$index_type = $index_info[10];
if ($index_name == "PRIMARY") $index_name = "PRIMARY KEY";
if ($index_unique == "1" && $index_type != "FULLTEXT") $index_name = sprintf("KEY %s", $index_name);
if ($index_unique == "0" && $index_name != "PRIMARY KEY") $index_name = sprintf("UNIQUE KEY %s", $index_name);
if ($index_type == "FULLTEXT") $index_name = sprintf("FULLTEXT KEY %s", $index_name);
$index_string = sprintf("%s, %s (%s)", $index_string, $index_name, $index_field_name);
}
$result = mysql_query("SHOW TABLE STATUS");
if (DEBUG) echo "\nstatus_info\n\n";
while ($status_info = mysql_fetch_array($result)) {
for ($i = 0; $i < count($status_info); $i++) {
if (DEBUG) echo "$i: $status_info[$i]\n";
if ($status_info[0] == $tablename) $table_type = sprintf("TYPE=%s", $status_info[1]);
}
}
$field_string = substr($field_string, 2);
$field_string = sprintf("%s%s", $field_string, $index_string);
$field_string = sprintf("(%s)", $field_string);
$sql_string = sprintf("%s %s %s", $sql_string, $field_string, $table_type);
return $sql_string.";";
}
function create_data_sql_string($tablename)
{
$sql_string = "";
$result = mysql_query("SELECT * FROM $tablename");
while ($row = mysql_fetch_row($result)) {
$data_string = "";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
$data_string = sprintf("%s, '%s'", $data_string, mysql_escape_string($row[$i]));
}
$data_string = substr($data_string, 2);
$data_string = sprintf("VALUES (%s)", $data_string).";";
$sql_string = sprintf("%sINSERT INTO %s %s\n", $sql_string, $tablename, $data_string);
}
return $sql_string;
}
?>
<?php
if(isset($act) and $act=="bakup"){
$dir=date("Y_m_d");
if(!file_exists("data/".$dir)) $r=mkdir("data/".$dir,0700);
for($i=0;$i<12;$i++){
$table = $GLOBALS["ch".$i];
if($table!=""){
if($bukcon=="all"){
$datable = create_table_sql_string($table);
$data = create_data_sql_string($table);
$txt=$datable."\n".$data;
}
if($bukcon=="record") $txt = create_data_sql_string($table);
if($bukcon=="struct") $txt = create_table_sql_string($table);
$filename=$table."_".$bukcon.date('_H_m').'_'.'nb315'.'.sql';
$fp=fopen("data/".$dir."/".$filename,"w+");
if(fputs($fp,$txt))$out="数据表".$table."已成功备份在 data/$dir/目录下--文件名是$filename"."\\n\\n".$out;
}
}
echo "<script>alert('$out');</script>";
}
?>
<?
function check_dir($dir){
$temp=opendir($dir);
while($tempfile=readdir($temp)){
if(($tempfile!=".")&&($tempfile!="..")&&($tempfile!="")){
return $tempfile;
}
}
closedir($temp);
return 0;
}
if(isset($button) and $button=="删除"){
for($i=0;$i<$filelength;$i++){
$list= $GLOBALS["f".$i];
if($list!=""){
if(!is_dir($dir.$list)) unlink($dir.$list);
else{
if(check_dir($dir.$list)) echo "<script>alert('文件夹 ".$dir.$list." 不是空的,不能删除!');</script>";
else rmdir($dir.$list);
}
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gbk">
<STYLE type=text/css>A {
COLOR: #003366; TEXT-DECORATION: none
}
A:hover {
TEXT-DECORATION: underline
}
BODY {
FONT-SIZE: 12px; SCROLLBAR-ARROW-COLOR: #698cc3; SCROLLBAR-BASE-COLOR: #f8f8f8; BACKGROUND-COLOR: #9eb6d8
}
TABLE {
FONT: 12px Tahoma, Verdana; COLOR: #000000
}
INPUT {
FONT: 11px Tahoma, Verdana; COLOR: #000000; BACKGROUND-COLOR: #f8f8f8
}
SELECT {
FONT: 11px Tahoma, Verdana; COLOR: #000000; BACKGROUND-COLOR: #f8f8f8
}
TEXTAREA {
FONT: 11px Tahoma, Verdana; COLOR: #000000; BACKGROUND-COLOR: #f8f8f8
}
FORM {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
SELECT {
FONT: 11px Arial, Tahoma; COLOR: #000000; BACKGROUND-COLOR: #f8f8f8
}
.nav {
FONT: bold 12px Tahoma, Verdana; COLOR: #000000
}
.nav A {
COLOR: #000000
}
.header {
FONT: bold 11px Tahoma, Verdana; COLOR: #ffffff; BACKGROUND-COLOR: #698cc3
}
.header A {
COLOR: #ffffff
}
.category {
FONT: 11px Arial, Tahoma; COLOR: #000000; BACKGROUND-COLOR: #efefef
}
.tableborder {
BORDER-RIGHT: #698cc3 1px solid; BORDER-TOP: #698cc3 1px solid; BACKGROUND: #d6e0ef; BORDER-LEFT: #698cc3 1px solid; BORDER-BOTTOM: #698cc3 1px solid
}
.singleborder {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f8f8f8
}
.smalltxt {
FONT: 11px Arial, Tahoma
}
.outertxt {
FONT: 12px Tahoma, Verdana; COLOR: #000000
}
.outertxt A {
COLOR: #000000
}
.bold {
FONT-WEIGHT: bold
}
.altbg1 {
BACKGROUND: #f8f8f8
}
.altbg2 {
BACKGROUND: #ffffff
}
.maintable {
WIDTH: 98%; BACKGROUND-COLOR: #ffffff
}
</STYLE>
<SCRIPT language=JavaScript src="admincp(2).files/common.js"></SCRIPT>
<SCRIPT language=JavaScript>
function checkalloption(form, value) {
for(var i = 0; i < form.elements.length; i++) {
var e = form.elements[i];
if(e.value == value && e.type == 'radio' && e.disabled != true) {
e.checked = true;
}
}
}
function zoomtextarea(objname, zoom) {
zoomsize = zoom ? 10 : -10;
obj = findobj(objname);
if(obj.rows + zoomsize > 0 && obj.cols + zoomsize * 3 > 0) {
obj.rows += zoomsize;
obj.cols += zoomsize * 3;
}
}
function redirect(url) {
window.location.replace(url);
}
</SCRIPT>
<script language="JavaScript">
function CheckAll(form) {
for (var i=0;i<form.elements.length;i++) {
var e = form.elements[i];
if (e.name != 'chkall' && e.type=='checkbox')
e.checked = form.chkall.checked;
}
}
function check(){
var bSelected = false ;
for ( i = 0 ; i < document.form1.elements.length ; i ++ ){
if ( document.form1.elements[i].type == "checkbox"){
if ( document.form1.elements[i].checked ){
bSelected = true ;
break;
}
}
}
if ( ! bSelected ){
alert ( "请选择一个数据表" ) ;
document.form1.chkall.focus();
return false;
}
}
</script>
<META content="MSHTML 6.00.2900.3020" name=GENERATOR></HEAD>
<BODY text=#000000 topMargin=10 #9EB6D8 background-color:><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4 width="85%" align=center>
<TBODY>
<TR class=header>
<TD>友情提示</TD></TR>
<TR bgColor=#f8f8f8>
<TD><BR>
<UL>
<LI><font class="midwhite">警告:本系统将对数据表结构和数据记录完全备份,但不对数据库之外的任何文件进行备份,请自行备份文件</font>。</LI></UL>
<UL>
<LI>备份文件自动保存在服务器data目录下,请自行保存在本地电脑上,以防止意外。</LI>
</UL>
<UL>
<LI>选择“数据结构+数据记录”,将保存数据库所有内容,选择“数据结构”或者“数据记录”,将只保存选择的部分。</LI></UL>
<UL>
<LI>请定期备份!</LI></UL></TD></TR></TBODY></TABLE><BR><BR>
<? if(!isset($need) or $need!="viewfile" or !isset($dir) or $dir==""){ ?>
<TABLE class=tableborder cellSpacing=1 cellPadding=4 width="85%" align=center>
<tr>
<td width="84%" valign="top">
<input type="button" name="Submit2" value="选择备份数据库" onClick="window.location='sysdata.php'">
<input type="button" name="Submit22" value="查看备份文件" onClick="window.location='?need=viewfile&dir=data/'">
</td>
</tr>
<tr>
<td width="84%" valign="top"><form name="form1" method="post" action="" onsubmit="return check()">
<table width="100%" border="1" cellspacing="0" cellpadding="4">
<tr>
<td align="right" class=header> 全选
<input type="checkbox" name="chkall" value="on" onclick="CheckAll(this.form)" title="点击可全选本页的所有选项">
</td>
<td class=header>数据库名</td>
<td class=header>数据库用途</td>
</tr>
<tr>
<td width="18%" bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch0" value="shm_advertisement"></td>
<td width="36%" bgcolor="#FFFFFF" class="midback">shm_advertisement</td>
<td width="46%" bgcolor="#FFFFFF" class="smallback">存放客户广告</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch1" value="shm_advice"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_advice</td>
<td bgcolor="#FFFFFF" class="smallback" >存放客户意见</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch2" value="shm_bulletin"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_bulletin</td>
<td bgcolor="#FFFFFF" class="smallback" >存放网站公告</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch3" value="shm_certify"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_certify</td>
<td bgcolor="#FFFFFF" class="smallback" >会员认证</td>
</tr>
<tr>
<td height="27" bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch4" value="forum_message">
</td>
<td bgcolor="#FFFFFF" class="midback">forum_message</td>
<td bgcolor="#FFFFFF" class="smallback">文章评论</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch5" value="shm_friendship"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_friendship</td>
<td bgcolor="#FFFFFF" class="smallback" >会员间关系如商友</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch6" value="shm_message"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_message</td>
<td bgcolor="#FFFFFF" class="smallback" >会员留言</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch7" value="shm_productlist"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_productlist</td>
<td bgcolor="#FFFFFF" class="smallback" >供求信息</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch8" value="shm_siteadmin"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_siteadmin</td>
<td bgcolor="#FFFFFF" class="smallback" >网站管理员</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><input type="checkbox" name="ch9" value="txt_bizinfo"></td>
<td bgcolor="#FFFFFF" class="midback" >txt_bizinfo</td>
<td bgcolor="#FFFFFF" class="smallback" >行业资讯,商务指南</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right" ><input type="checkbox" name="ch10" value="shm_userlist"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_userlist</td>
<td bgcolor="#FFFFFF" class="smallback" >会员列表</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right" ><input type="checkbox" name="ch11" value="shm_vacation"></td>
<td bgcolor="#FFFFFF" class="midback" >shm_vacation</td>
<td bgcolor="#FFFFFF" class="smallback" >行业名称</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" class=midback align=right>选择备份内容</td>
<td colspan="2" bgcolor="#FFFFFF">
<select name="bukcon" style="background-color: #FF0000;border: #3366CC;color: #ffffff;font-weight: bold;">
<option selected value="all">数据库结构+数据库记录</option>
<option value="record">数据库记录</option>
<option value="struct">数据库结构</option>
</select>
</td>
</tr>
<tr>
<td colspan="3" bgcolor="#FFFFFF"><input type="hidden" name="act" value="bakup">
<input name="Submit" type="submit" class="deletebutton" value="立即对选定数据表进行备份">
</td>
</tr>
</table>
</form></td>
</tr>
</table><BR><BR>
<? }else{ ?>
<TABLE class=tableborder cellSpacing=1 cellPadding=4 width="85%" align=center>
<tr>
<td height="26" valign="top"><input type="button" name="Submit23" value="选择备份数据库" onClick="window.location='sysdata.php'">
<input type="button" name="Submit222" value="查看备份文件" onClick="window.location='?need=viewfile&dir=data/'">
</td>
</tr>
<tr>
<td height="26" class=header>当前目录:<? echo $dir ?></td>
</tr>
<tr>
<td valign="top">
<form name="form2" method="post" action="">
<table width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td width="8%"><input type="checkbox" name="chkall" value="on" onclick="CheckAll(this.form)" >全选
</td>
<td width="92%" class=midback>文件或文件夹名</td>
</tr>
<?
$opendir=opendir($dir);
$num=0;
while($file_name=readdir($opendir)){
if(($file_name!=".") and ($file_name!="..")){
$temp= "<tr><td ><input type=checkbox name=f$num value=$file_name></td>";
if(!is_dir($dir.$file_name)) $temp=$temp."<td> <a href=opentxt.php?fid=$dir$file_name target=blank><img src=images/listfile.gif border=0>$file_name</a></td></tr>";
else $temp=$temp."<td> <a href=?need=viewfile&dir=$dir$file_name/><img src=images/fold.gif border=0>$file_name</a></td></tr>";
$num=$num+1;
echo $temp;
}
}
closedir($opendir);
clearstatcache();
if($num==0) echo "<tr> <td colspan=2 class=smallred>此目录是空的,没有文件</td></tr>";
?>
<tr>
<td colspan="2">
<? if($PWARRAY[adright]==1){ ?>
<input type=hidden name=filelength value=<? echo $num ?>>
<input name="button" type="submit" class="deletebutton" value="删除" onclick="return confirm('确定删除此操作?');">
<? }else{ ?>
<input name="button" type="submit" disabled class="deletebutton" value="删除" onclick="return confirm('确定删除此记录?');">
<? } ?>
<? if($dir=="data/"){ ?>
<input type="submit" name="button" value="返回" disabled>
<? }else{ ?>
<input type="button" name="button" value="返回" onclick="window.location='?need=viewfile&dir=data/'">
<? } ?>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<? } ?>
<BR><BR>
<HR width="80%" color=#698cc3 noShade SIZE=0>
<CENTER><FONT
style="FONT-SIZE: 11px; FONT-FAMILY: Tahoma, Verdana, Arial">Powered by <A
style="COLOR: #000000" href="http://www.foodmate.com/"
target=_blank><B>foodmate.com</B></A> © 2001-2008, <B>foodmate.com
Inc.</B></FONT> </CENTER></BODY></HTML>
关于网易邮箱的问题,由于网易从去年的11月15日开始不再对新申请的用户开通
POP及SMTP访问, 也不能用163.和126的邮箱进行转发邮件.
> 所以新邮箱用户视图用POP及SMTP访问时,会得到没有权限的错误信息,根据余
网友的经验,
> 可以用以下地址在把网易邮箱(只限163.com和126.com的)升级到3G空间的同时
开通POP及SMTP访问,
> 具体地址如下,升级请按照页面提示进行即可:
> http://uinfo.mail.163.com/enlarge3g/index.htm
网页上只有升级成功的提示,成功以后,再按照网易邮箱关于POP及SMTP访问的帮助设置客户端即可,
关于POP及SMTP访问的帮助在:
http://mail.163.com/help/help_client_04.htm 163.com的
http://www.126.com/help/client_04.htm 126.com的
POP及SMTP访问, 也不能用163.和126的邮箱进行转发邮件.
> 所以新邮箱用户视图用POP及SMTP访问时,会得到没有权限的错误信息,根据余
网友的经验,
> 可以用以下地址在把网易邮箱(只限163.com和126.com的)升级到3G空间的同时
开通POP及SMTP访问,
> 具体地址如下,升级请按照页面提示进行即可:
> http://uinfo.mail.163.com/enlarge3g/index.htm
网页上只有升级成功的提示,成功以后,再按照网易邮箱关于POP及SMTP访问的帮助设置客户端即可,
关于POP及SMTP访问的帮助在:
http://mail.163.com/help/help_client_04.htm 163.com的
http://www.126.com/help/client_04.htm 126.com的
问题:2007-08-19 6:10:16 和2007-08-20 16:11:03 怎样得出两个时间差来啊,得出结果是×小时×分×秒啊??
获得时间戳(笨办法):
function GetMkTime($dtime)
{
if(!ereg("[^0-9]",$dtime)) return $dtime;
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(isset($ymd[0])) $dt[0] = $ymd[0];
if(isset($ymd[1])) $dt[1] = $ymd[1];
if(isset($ymd[2])) $dt[2] = $ymd[2];
if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
if(isset($ds[1])){
$hms = explode(":",$ds[1]);
if(isset($hms[0])) $dt[3] = $hms[0];
if(isset($hms[1])) $dt[4] = $hms[1];
if(isset($hms[2])) $dt[5] = $hms[2];
}
foreach($dt as $k=>$v){
$v = ereg_replace("^0{1,}","",trim($v));
if($v=="") $dt[$k] = 0;
}
$mt = @mktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]);
if($mt>0) return $mt;
else return time();
}
方法一:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time=getdate($time_diff);
$diff_time["year"]-=1970;
$diff_time["mon"]-=1;
$diff_time["mday"]-=1;
// ar_dump($diff_time);
return "时间相差:".$diff_time["year"]."年".$diff_time["mon"]."月".$diff_time["mday"]."日".$diff_time["hours"]."时".$diff_time["minutes"]."分".$diff_time["seconds"];
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:11:03")."<br>";
print getTimeDifference("2005-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
?>
方法二:
<?
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$diff_time=($stamp_one-$stamp_two);
$day=intval($diff_time/86400);
$hour=intval(($diff_time-$day*86400)/3600);
$minutes=intval(($diff_time-$day*86400-$hour*3600)/60);
$seconds=$diff_time-$day*86400-$hour*3600-$minutes*60;
return "时间相差:".$day."天".$hour."小时".$minutes."分".$seconds."秒";
}
$aa="2007-08-19 6:10:16";
$bb="2007-08-20 16:11:03";
echo getTimeDifference($bb,$aa);
?>
方法三:
echo getTimeDifference('2007-08-19 6:10:16','2007-08-20 16:11:03');
function getTimeDifference($time_one,$time_two) //0年0月1日10时0分
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time = array();
$diff_time["year"] = 0;
if($time_diff > 31536000) //一年31536000秒
$diff_time["year"] = floor($time_diff / 31536000);
$time_diff = $time_diff - $diff_time["year"] * 31536000;
$diff_time["month"] = 0;
if($time_diff > 2592000) //一月2592000秒
$diff_time["month"] = floor($time_diff / 2592000);
$time_diff = $time_diff - $diff_time["month"] * 2592000;
$diff_time["day"] = 0;
if($time_diff > 86400) //一天86400秒
$diff_time["day"] = floor($time_diff / 86400);
$time_diff = $time_diff - $diff_time["day"] * 86400;
$diff_time["hour"] = 0;
if($time_diff > 3600) //一小时3600秒
$diff_time["hour"] = floor($time_diff / 3600);
$time_diff = $time_diff - $diff_time["hour"] * 3600;
$diff_time["minute"] = 0;
if($time_diff > 60) //一分60秒
$diff_time["minute"] = floor($time_diff / 60);
$time_diff = $time_diff - $diff_time["minute"] * 60;
return "时间相差:".$diff_time["year"]."年".$diff_time["month"]."月".$diff_time["day"]."日".$diff_time["hour"]."时".$diff_time["minute"]."分";
}
方法四:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
/ diff_time=getdate($time_diff);
$days=intval($time_diff/3600/24);
$hours=intval( ($time_diff - (3600*24*$days)) / 3600);
$minutes=intval(($time_diff- (3600*24)*$days - 3600*$hours )/60);
$seconds=$time_diff%60;
return "时间相差:".$days."日".$hours."时".$minutes."分".$seconds."秒";
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:05:00")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:15:14")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:12:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 8:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-17 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2009-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2027-08-19 6:10:16")."<br>";
?>
获得时间戳(笨办法):
function GetMkTime($dtime)
{
if(!ereg("[^0-9]",$dtime)) return $dtime;
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(isset($ymd[0])) $dt[0] = $ymd[0];
if(isset($ymd[1])) $dt[1] = $ymd[1];
if(isset($ymd[2])) $dt[2] = $ymd[2];
if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
if(isset($ds[1])){
$hms = explode(":",$ds[1]);
if(isset($hms[0])) $dt[3] = $hms[0];
if(isset($hms[1])) $dt[4] = $hms[1];
if(isset($hms[2])) $dt[5] = $hms[2];
}
foreach($dt as $k=>$v){
$v = ereg_replace("^0{1,}","",trim($v));
if($v=="") $dt[$k] = 0;
}
$mt = @mktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]);
if($mt>0) return $mt;
else return time();
}
方法一:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time=getdate($time_diff);
$diff_time["year"]-=1970;
$diff_time["mon"]-=1;
$diff_time["mday"]-=1;
// ar_dump($diff_time);
return "时间相差:".$diff_time["year"]."年".$diff_time["mon"]."月".$diff_time["mday"]."日".$diff_time["hours"]."时".$diff_time["minutes"]."分".$diff_time["seconds"];
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:11:03")."<br>";
print getTimeDifference("2005-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
?>
方法二:
<?
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$diff_time=($stamp_one-$stamp_two);
$day=intval($diff_time/86400);
$hour=intval(($diff_time-$day*86400)/3600);
$minutes=intval(($diff_time-$day*86400-$hour*3600)/60);
$seconds=$diff_time-$day*86400-$hour*3600-$minutes*60;
return "时间相差:".$day."天".$hour."小时".$minutes."分".$seconds."秒";
}
$aa="2007-08-19 6:10:16";
$bb="2007-08-20 16:11:03";
echo getTimeDifference($bb,$aa);
?>
方法三:
echo getTimeDifference('2007-08-19 6:10:16','2007-08-20 16:11:03');
function getTimeDifference($time_one,$time_two) //0年0月1日10时0分
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time = array();
$diff_time["year"] = 0;
if($time_diff > 31536000) //一年31536000秒
$diff_time["year"] = floor($time_diff / 31536000);
$time_diff = $time_diff - $diff_time["year"] * 31536000;
$diff_time["month"] = 0;
if($time_diff > 2592000) //一月2592000秒
$diff_time["month"] = floor($time_diff / 2592000);
$time_diff = $time_diff - $diff_time["month"] * 2592000;
$diff_time["day"] = 0;
if($time_diff > 86400) //一天86400秒
$diff_time["day"] = floor($time_diff / 86400);
$time_diff = $time_diff - $diff_time["day"] * 86400;
$diff_time["hour"] = 0;
if($time_diff > 3600) //一小时3600秒
$diff_time["hour"] = floor($time_diff / 3600);
$time_diff = $time_diff - $diff_time["hour"] * 3600;
$diff_time["minute"] = 0;
if($time_diff > 60) //一分60秒
$diff_time["minute"] = floor($time_diff / 60);
$time_diff = $time_diff - $diff_time["minute"] * 60;
return "时间相差:".$diff_time["year"]."年".$diff_time["month"]."月".$diff_time["day"]."日".$diff_time["hour"]."时".$diff_time["minute"]."分";
}
方法四:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
/ diff_time=getdate($time_diff);
$days=intval($time_diff/3600/24);
$hours=intval( ($time_diff - (3600*24*$days)) / 3600);
$minutes=intval(($time_diff- (3600*24)*$days - 3600*$hours )/60);
$seconds=$time_diff%60;
return "时间相差:".$days."日".$hours."时".$minutes."分".$seconds."秒";
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:05:00")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:15:14")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:12:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 8:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-17 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2009-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2027-08-19 6:10:16")."<br>";
?>
<script language="javascript">
function checkTextareaLength(form1,textareaId, length)
{
//var ta = document.getElementById(textareaId);
var taLength = textareaId.value.length;
if(taLength>length)
textareaId.value = textareaId.value.substring(0, length);
if( taLength == length )
{
document.form1.submit();
}
}
</script>
<html>
<head>
<title>判断多选,单选是否选中</title>
<script>
function checkRadioOrCheckbox(formObject){
var fObject=formObject;
var checkboxObject=document.getElementsByName("ckname");
var radioObject=document.getElementsByName("radioname");
var cknum=0;
var radionum=0;
for(var j=0;j<checkboxObject.length;j++){
if(checkboxObject[j].checked){
cknum=cknum+1;
}
}
if(cknum==0){
alert("checkbox没选");
return false;
}else if(cknum>3){//超过3个checkbox checked
alert("最多选3个");
return false;
}
for(var j=0;j<radioObject.length;j++){
if(radioObject[j].checked){
radionum=radionum+1;
}
}
if(radionum==0){
alert("radio没选");
return false;
}
}
</script>
</head>
<body>
<form method="post" action="" onsubmit="return checkRadioOrCheckbox(this);">
<div>
<div>checkbox</div>
<input type="checkbox" name="ckname" value="0">
<input type="checkbox" name="ckname" value="1">
<input type="checkbox" name="ckname" value="2">
<input type="checkbox" name="ckname" value="3">
<input type="checkbox" name="ckname" value="4">
<input type="checkbox" name="ckname" value="5">
</div>
<div>
<div>radio type</div>
<input type="radio" name="radioname" value="0">
<input type="radio" name="radioname" value="1">
<input type="radio" name="radioname" value="2">
<input type="radio" name="radioname" value="3">
<input type="radio" name="radioname" value="4">
</div>
<input type="submit" name="submit" value="测试checkbox or radio checked">
</form>
</body>
</html>
七星珠具体暴点和时间
龙珠种类 出现地图 具体坐标或地点 怪物种类
一星珠 中州 青龙炉 棍犬
热砂荒漠 炼狱入口附近 土狼
二星珠 将军坟一层 250:265 尸卫勇士
将军坟二层 210:185 尸卫战将
三星珠 逆魔古刹一层 190:190 逆魔雕像
逆魔古刹二层 250:250 逆魔卫士
四星珠 天机堂 150:130 铜锤手
神工堂 95:155 金刚人
五星珠 地穴入口 205:240 红蛇妖
环道 250:215 黑蛇妖
六星珠 一手遮天 320:300 火烈鸟
二道廊线 55:155 火烈鸟
七星珠 死水沼泽 130:40 幽魂
地下魔域一层 100:180 猛魔统领
(PHP 3, PHP 4, PHP 5)
imagettftext -- 用 TrueType 字体向图像写入文本
说明
array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
image
图像资源。见 imagecreatetruecolor()。
size
字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。
angle
角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
x
由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。
y
Y 坐标。它设定了字体基线的位置,不是字符的最底端。
color
颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字体的路径。
根据 PHP 所使用的 GD 库的不同,当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。
当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。
很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。
<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
文本字符串。
可以包含十进制数字化字符表示(形式为:€)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。
如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。
imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。
例子 1. imagettftext() 例子
本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
本函数同时需要 GD 库和 FreeType 库。
例子:
<?php
header("Content-type: image/jpeg");
$im = imagecreate(400,30);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
$string = iconv("GB2312", "UTF-8", "我爱你");
$font = "SIMHEI.TTF";
// Replace path by your own font path
imagettftext($im, 20, 0, 10, 20, $black, $font, $string);
imagejpeg($im);
imagedestroy($im);
?>
imagettftext -- 用 TrueType 字体向图像写入文本
说明
array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
image
图像资源。见 imagecreatetruecolor()。
size
字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。
angle
角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
x
由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。
y
Y 坐标。它设定了字体基线的位置,不是字符的最底端。
color
颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字体的路径。
根据 PHP 所使用的 GD 库的不同,当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。
当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。
很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。
<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
文本字符串。
可以包含十进制数字化字符表示(形式为:€)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。
如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。
imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。
例子 1. imagettftext() 例子
本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
本函数同时需要 GD 库和 FreeType 库。
例子:
<?php
header("Content-type: image/jpeg");
$im = imagecreate(400,30);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
$string = iconv("GB2312", "UTF-8", "我爱你");
$font = "SIMHEI.TTF";
// Replace path by your own font path
imagettftext($im, 20, 0, 10, 20, $black, $font, $string);
imagejpeg($im);
imagedestroy($im);
?>