PHP重定向和页面快速转向
<?
function turntopage($url="index.php",$info = "页面转向中...",$second=2){
print "<html>n<head>n<title>页面转向中....</title>n";
print "<meta http-equiv="refresh" content="$second;url=$url">n"; //开源代码111cn.net
print "<style type="text/css教程">n<!--n";
print "td { font-family: "verdana", "arial";font-size: 12px}n";
print "a {color: #000000; text-decoration: none}n";
print "-->n</style>n";
print "</head>n<body>n";
print "<table width="100%" border="0" align="center">n";
//111cn.net
print " <tr>n";
print " <td height="200"> </td>n";
print " </tr>n";
print " <tr>n";
print " <td align="center">n";
print " <table width="60%" border="0" cellpadding="8" bgcolor="#aa9fff">n";
//开源代码111cn.net
print " <tr>n";
print " <td height="30" align="center">页面转向提示信息</td>n";
print " </tr>n";
print " <tr>n";
print " <td align="center">$info</td>n";
print " </tr>n";
print " <tr>n";
//111cn.net
print " <td align="center">n";
print " <a href="$url">如果你的浏览器不支持自动跳转,请按这里</a></td>n";
print " </tr>n";
print " </tr>n";
print " </table></td>n";
print " </tr>n";
print " <tr>n"; //开源111cn.net
print " <td height="200"> </td>n";
print " </tr>n";
print "</table>n";
print "</body>n</html>";
exit;
?>
php重定向
<?
方法一:header("location: index.php");
方法二:echo "<scrīpt>window.location ="$php_self";</scrīpt>";
//开源代码111cn.net
方法三:echo "<meta http-equiv="refresh" content="0; url=index.php">";
?>
在这里中我们介绍了php教程命名空间的用途和namespace关键字,在这篇文章中我们将介绍一下use命令的使用以及php如何解析命名空间的名字的。
namespace bakbaba;
function bab(){
echo "bi";
}
namespace kkk;
function k1(){
echo "k1";
}
bakbababab();//在kkk的命名空间下使用别的命名空间,注意前面的
use bakbaba as b;//依旧在kkk的命名空间下,但是用别名的的时候以下方法也正确
#use bakbaba as b;//前面可以不使用号
bbab();//使用别名下命名空间的时候前面不该有号
k1();//调用该函数没有报错,说明use不影响当前当前命名空间
< ?php
// application library 1
namespace applib1;
const myconst = 'applib1myconst';
function myfunction() {
return __function__;
}
class myclass {
static function whoami() {
eturn __method__;
}
}
?>
lib2.php
< ?php
// application library 2
namespace applib2;
const myconst = 'applib2myconst';
function myfunction() {
return __function__;
}
class myclass {
static function whoami() {
eturn __method__;
}
}
?>
幸好在手册中发现这么一段代码,故手册中其他关于namespace的内容,就可以忽略了,直接看下面的代码
<?php
namespace a;
use bd, ce as f;// 函数调用
foo(); // 首先尝试调用定义在命名空间"a"中的函数foo()
// 再尝试调用全局函数 "foo"foo(); // 调用全局空间函数 "foo"
myfoo(); // 调用定义在命名空间"amy"中函数 "foo"
f(); // 首先尝试调用定义在命名空间"a"中的函数 "f"
// 再尝试调用全局函数 "f"// 类引用
new b(); // 创建命名空间 "a" 中定义的类 "b" 的一个对象
// 如果未找到,则尝试自动装载类 "ab"new d(); // 使用导入规则,创建命名空间 "b" 中定义的类 "d" 的一个对象
// 如果未找到,则尝试自动装载类 "bd"new f(); // 使用导入规则,创建命名空间 "c" 中定义的类 "e" 的一个对象
// 如果未找到,则尝试自动装载类 "ce"new b(); // 创建定义在全局空间中的类 "b" 的一个对象
// 如果未发现,则尝试自动装载类 "b"new d(); // 创建定义在全局空间中的类 "d" 的一个对象
// 如果未发现,则尝试自动装载类 "d"new f(); // 创建定义在全局空间中的类 "f" 的一个对象
// 如果未发现,则尝试自动装载类 "f"// 调用另一个命名空间中的静态方法或命名空间函数
bfoo(); // 调用命名空间 "ab" 中函数 "foo"
b::foo(); // 调用命名空间 "a" 中定义的类 "b" 的 "foo" 方法
// 如果未找到类 "ab" ,则尝试自动装载类 "ab"d::foo(); // 使用导入规则,调用命名空间 "b" 中定义的类 "d" 的 "foo" 方法
// 如果类 "bd" 未找到,则尝试自动装载类 "bd"bfoo(); // 调用命名空间 "b" 中的函数 "foo"
b::foo(); // 调用全局空间中的类 "b" 的 "foo" 方法
// 如果类 "b" 未找到,则尝试自动装载类 "b"// 当前命名空间中的静态方法或函数
ab::foo(); // 调用命名空间 "aa" 中定义的类 "b" 的 "foo" 方法
// 如果类 "aab" 未找到,则尝试自动装载类 "aab"ab::foo(); // 调用命名空间 "ab" 中定义的类 "b" 的 "foo" 方法
// 如果类 "ab" 未找到,则尝试自动装载类 "ab"
?>
其它原理很简单,利用form表单的target属性和iframe来实现的,打开为iframe试就行了,返回就利用js判断php教程运行后返回的参数是不是成功
一、上传文件的一个php方法。
该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失败,则返回空字符串。
php代码
function uploadfile($file) {
// 上传路径 $destinationpath = "./upload/";
if (!file_exists($destinationpath)){
mkdir($destinationpath , 0777); }
//重命名
$filename = date('ymdhis') . '_' . iconv('utf-8' , 'gb2312' , basename($file['name']));
if (move_uploaded_file($file['tmp_name'], $destinationpath . $filename)) { return iconv('gb2312' , 'utf-8' , $filename);
} return '';
}
二、客户端html代码
这里正是技巧所在,添加另一个iframe来实现。表单标签form定义了一个属性target,该属性解释如下:
[pre]target属性:
_blank ---------- 新开窗口
_self ----------- 自身
_top ------------ 主框架
_parent --------- 父框架
自定义名字 ----- 出现于框架结构,将会在该名称的框架内打开链接
本例中采用iframe名字,所以表单在提交时会在iframe内打开链接(即无刷新,确切的说应该是
感觉无刷新)
在表单提交时,调用startupload方法,当然这是js定义的。
[/pre][pre]此外我们还定义一个span来显示提示信息。代码如下:
[/pre]xhtml代码
<form id="upform" action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startupload()"> 导入文件:<input type="file" name="myfile" id="myfile" />
<input type="submit" name="submitbtn" value="导入" /> <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;">iframe>
form> <span id="info">span>三、js部分
这部分比较简单,只是显示提示信息
网页特效代码
function startupload() {
var spanobj = document.getelementbyid("info"); spanobj.innerhtml = " 开始上传";
}
function stopupload(responsetext){ var spanobj = document.getelementbyid("info");
spanobj.innerhtml = " 上传成功; spanobj.innerhtml = responsetext;
}
接下来就要看服务器端得处理了。
四、服务器段处理部分
php代码
$file = $_files['myfile']; $filename = uploadfile($file);
$result = readfromfile("./upload/" . $filename);
此外在后面还应该加上一句js代码用来调用stopupload方法。
javascript代码
window.top.window.stopupload("");
最后在补上php中的readfromfile方法,就大功告成了。
php代码
function readfromfile($target_path) {
// 读取文件内容 $file = fopen($target_path,'r') or die("unable to open file");
$filecontent = ''; while(!feof($file))
{ $str = fgets($file);
$filecontent .= $str; }
fclose($file); return $filecontent;
}
总结:方法很简单扼要,如果你以前没想到觉得ajax无刷新文件上传很难,现在明白利用iframe target来制作就觉得很容易了。
第一种比较简单就是files利用index.php教程接入值就成了,没经过判断,都会用到move_uploaded_files与files[]全局变量如下
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_files["file"]["name"] - 被上传文件的名称
$_files["file"]["type"] - 被上传文件的类型
$_files["file"]["size"] - 被上传文件的大小,以字节计
$_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_files["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制
<form action="index.php" method="post" enctype="multipart/form-data">
缩略图:<input type="file" name="files" />
<input type="submit" value="提交"/>
</form>
</body>
</html>
php代码
1 <?php2 $temp_name = $_files[files][tmp_name]; //临时文件3 $now_name = $_files[files][name]; //当前文件4 move_uploaded_file($temp_name,'./images/'.date('yyyymdhis').$now_name); //移动到指定的文件夹下面5 ?>
下面来看一个完整一点的文件上传代码
html>
<body><form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="submit" />
</form></body>
</html>
php处理文件
<?php
if ($_files["file"]["error"] > 0)
{
echo "error: " . $_files["file"]["error"] . "<br />";
}
else
{
echo "upload: " . $_files["file"]["name"] . "<br />";
echo "type: " . $_files["file"]["type"] . "<br />";
echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";
echo "stored in: " . $_files["file"]["tmp_name"];
}
?>
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
如果你要限制文件上传类型与大小可以这样
if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
php教程 url地址 email ip地址 验证
以前验证邮箱,ip,url地址都要用正则,现在我们利用php filter_validate_url,filter_validate_email,filter_validate_ip三个函数。
filter_validate_url 把值作为 url 来验证。
filter_validate_email 把值作为 e-mail 来验证。
filter_validate_ip 把值作为 ip 地址来验证。
*/
$url = "example.php?name=peter&age=37";
if(!filter_var($url, filter_validate_url, filter_flag_query_required))
{
echo "url is not valid";
}
else
{
echo "url is valid";
}
/*
filter_validate_email 过滤器把值作为电子邮件地址来验证
*/
$email = "someone@exa mple.com";
if(!filter_var($email, filter_validate_email))
{
echo "e-mail is not valid";
}
else
{
echo "e-mail is valid";
}
/*
filter_validate_ip 过滤器把值作为 ip 进行验证。
*/
$ip = "192.168.0.1";
if(!filter_var($ip, filter_validate_ip))
{
echo "ip is not valid";
}
else
{
echo "ip is valid";
}
//ipv6
$ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
if(!filter_var($ip, filter_validate_ip, filter_flag_ipv6))
{
echo "ip is not valid";
}
else
{
echo "ip is valid";
}
相关文章
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- 这篇文章主要给大家介绍了关于微信小程序页面间传值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-09
PHP传值到不同页面的三种常见方式及php和html之间传值问题
在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
- 直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
- 这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
Spring Boot项目@RestController使用重定向redirect方式
这篇文章主要介绍了Spring Boot项目@RestController使用重定向redirect方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-02PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09
- 这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要介绍了vue实现在进行增删改操作后刷新页面,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
- 对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
- 这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要介绍了cmd命令的重定向输出 2>&1详解,需要的朋友可以参考下...2020-08-28
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02