第一篇:黑马程序员:PHP页面跳转到另一个页面的3种方法
PHP页面跳转到另一个页面的三种方法
一、用HTTP头信息
上面是302跳转,从seo角度,更喜欢下面的这种301跳转
二、用HTML标记
用HTML标记,就是用META的REFRESH标记,举例如下:
第二篇:点击超链接跳转到另一个页面并且让跳转的页面在规定的iframe框架中显示
添加一个iframe,然后给iframe定义一个name,在连接的target上填写这个name就可以了,具体代码如下:
第三篇:php页面缓存实现方法总结范文
php页面缓存实现方法总结
在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文章最后一个实现就有讲到,大家可参考一下。ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;
ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ :)
ob_end_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。
用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。
下面是编码部分。
1.初始化函数,一般是设置页面缓存路径、缓存文件命名格式等,可按个人喜好自定义。这里用到的识别ID是经加密的$_SERVER[REQUEST_URI]参数。这个函数中最后还有一个if判断:若未过缓存期,则加载缓存文件,否则加载源文件。
代码如下 复制代码 function page_init(){
$url = $_SERVER['REQUEST_URI'];//子url,该参数一般是唯一的$pageid = md5($url);
$dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4));
//目录命名方式,如exp_index
if(!file_exists($pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777)or die(“$pd目录创建失败”);
//如cache/page/exp_index/
define('PAGE_FILE',$pd.$pageid.'.html');
//如cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html
$contents = file_get_contents(PAGE_FILE);//读出
if($contents && substr($contents, 13, 10)> time())//对应page_cache()函数中加上的自定义头部
{
echo substr($contents, 27);
exit(0);
}
return true;
}
2.页面缓存函数,这里使用到一个技巧:在缓存文件的内容中加上一个头部信息--过期时间,所以每次只需要对头部中的过期时间和当前时间进行比较(在page_init()函数中进行)就能判断缓存是否过期了。
代码如下 复制代码
function page_cache($ttl = 0){
$ttl = $ttl ? $ttl : PAGE_TTL;//缓存时间,默认3600s
$contents = ob_get_contents();//从缓存中获取内容
$contents = “n”.$contents;
//加上自定义头部:过期时间=生成时间+缓存时间
file_put_contents(PAGE_FILE, $contents);//写入缓存文件中
ob_end_flush();//释放缓存
}
3.函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start()
代码如下 复制代码
page_init();//页面缓存初始化
ob_start();//开启缓存
...//代码段
page_cache(60);//一般是最后一行
?> 例2
下面做个示例来说明PHP页面缓存技术:
代码如下 复制代码
function cache_start($_time, $dir){
$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';
$cachetime = $_time;
ob_start();
if(file_exists($cachefile)&&(time()-filemtime($cachefile)< $cachetime))
{
include($cachefile);
ob_end_flush();
exit;
} }
function cache_end($dir){
$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();}
cache_start($_time, $dir);//以下是输出的内容,放在cache_start和cache_end两个方法之间 for($i=0;$i<5;$i++){
echo $i;
sleep(1);} cache_end($dir);?> 例
利用生成文件做缓存
代码如下 复制代码
* @copyright 2009-3-13 * @param string $cache_folder 缓文件夹
* @param int $cache_create_time 文件缓存时间 * @example $cache=new Esj_Cache('./_cache',100)* @example $cache->read_cache()读取缓存并输出
* @example $cache->creatre_cache()创建缓存文件(放在文件未尾)* @example $cache->list_file()返回所有缓存文件列表 * @example $cache->del_file()删除所有缓存文件 */
class Esj_Cache{ private $cache_folder=null;//cacher文件夹 private $wroot_dir=null;//站点目录
private $cacher_create_time=null;//cacher文件的建立时间
public function __construct($cache_foldername,$cacher_time=100){ ob_start();$this->wroot_dir=$_SERVER['DOCUMENT_ROOT'];$this->cache_folder=$cache_foldername;$this->cacher_create_time=$cacher_time;}
public function read_cache(){ try { if(self::create_folder($this->cache_folder)){ self::get_cache();//输出缓存文件信息 }else { echo “缓存文件夹创建失败!”;return false;}
}catch(Exception $e){ echo $e;return false;} }
//测试缓存文件夹是否存在
private function exist_folder($foler){ if(file_exists($this->wroot_dir.“/”.$foler)){ return true;}else { return false;} } //建立一个新的文件夹
private function create_folder($foler){ if(!self::exist_folder($foler)){ try{ mkdir($this->wroot_dir.“/”.$foler,0777);chmod($this->wroot_dir.“/”.$foler,0777);return true;}catch(Exception $e){ self::get_cache();//输出缓存 return false;} return false;} else { return true;} }
//读取缓存文件
private function get_cache(){ $file_name=self::get_filename();if(file_exists($file_name)&&((filemtime($file_name)+$this->cacher_create_time)> time())){ $content=file_get_contents($file_name);if($content){ echo $content;ob_end_flush();exit;}else { echo “文件读取失败”;exit;} } } //返回文件的名字
private function get_filename(){ $filename=$file_name=$this->wroot_dir.'/'.$this->cache_folder.'/'.md5($_SERVER['QUERY_STRING']).“.html”;return $filename;}
//建立缓存文件
public function create_cache(){ $filename=self::get_filename();if($filename!=“"){ try{ file_put_contents($filename,ob_get_contents());return true;}catch(Exception $e){ echo ”写缓存失败:“.$e;exit();} return true;} }
// 取得缓存中的所有文件 public function list_file(){ $path=$this->cache_folder;if($handle = opwww.shanxiwang.netendir($path)){ while(false!==($file = readdir($handle))){ if($file!=”.“ && $file!=”..“){ $path1=$path.”/“.$file;if(file_exists($path1)){ $result[]=$file;} } } closedir($handle);} return $result;}
//删除缓存中的所有文件 public function del_file(){ $path=$this->cache_folder;if($handle = opendir($path)){ while(false!==($file = readdir($handle))){ if($file!=”.“ && $file!=”..“){ $path1=$path.”/".$file;if(file_exists($path1)){ unlink($path1);} } } closedir($handle);} return true;} } ?>
第四篇:黑马程序员PHP培训教程:Linux介绍
Linux介绍
1、计算机资源
计算机资源是由两部分组成:
硬件资源:键盘、显示器、鼠标、硬盘、内存等等。软件资源:应用程序,如office、qq等等。
问题:用户在键盘上的操作(打字)为什么会在word文档中显示出来? 流程:硬件→操作系统→程序→硬件(显示器)
操作系统:操作系统它是一个特殊的软件程序(软件资源的范畴)。
2、常见的操作系统
• Windows 它微软公司开发的一款桌面操作系统(闭源系统)。版本有dos、win98、win NT、win XP、win
7、winvista、win
8、win 10。服务器操作系统:winserver 2003、winserver 2008、winserver 2012。Mac 苹果公司开发的一款操作系统(闭源系统),目前最新的版本是IOS10。界面风格还是不错。对于系统底层的优化也是很好。Linux Linux是一个开源的操作系统,目前是市面上占有率极高的服务器操作系统。目前其分支有很多。Unix Unix是Linux操作系统的前身,Unix时间戳是指1970年1月1日0时0分0秒,1970年是Unix的时间元年,也就是Unix诞生的年份。•
3、为什么要使用Linux操作系统
之所以大部分的公司开发的时候都是使用Linux操作系统,取决于两个特性:
稳定性:取决于系统的底层架构,一般情况下Linux系统能做到很长时间不关机一点也不卡顿;
安全性:开源系统,所有人都可以贡献自己的源代码为Linux系统打补丁; 开源一定意味着免费么?
开源是指免费的将代码开放,实质上是进行服务收费。RedHat它是Linux系统的一个分支,服务收费价格大约是10万$/年。
4、Linux名字含义
狭义:是指有Linux作者(Linux之父)李纳斯(linus)所编写的一段代码; 广义:是指目前在各大公司所被广泛使用的Linux多种分支的集合。
Linux发展历史 Unix操作系统
• 1968年Multics项目
MIT、Bell实验室、美国通用电气有限公司走到了一起致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。1970年UNIX诞生
当时在开发Multics项目的时候,实验室中有一个开发成员开发了一款游戏(travelspace:遨游太空),因为两个实验室相继离开项目开发,导致这名开发人员没法玩游戏,后来他提议组织人员重新在Multics项目之上重新的开发,也就出现了1970年的Unix。当时Unix操作系统是使用的汇编语言开发的。1973年用C语言重写UNIX 因为汇编语言有一个最大的局限性:对于计算机硬件过于依赖。导致移植性不好,所以后期在1973年使用了C语言对其进行重新开发。1975年Bell实验室允许大学使用UNIX 1975年,bell实验室允许大学使用unix操作系统用于教学作用,而不允许用于商业用途。•
Linux操作系统
• 人物
Linus
Linux的开发作者,李纳斯·托瓦兹。荷兰在校大学生。• 1991年
0.0.1版本
李纳斯当时学校使用的就是Unix操作系统,然后其对系统的底层代码进行了修改,放到了学校为学生开放的网站上,原先他把文件命名写成了Linus’sUnix,后期网络管理发现之后觉得这个名字不好,自己手动的将名字改成Linux。随后其他同学下载之后发现这个版本还是挺好用的,随后都把自己代码贡献给李纳斯。• 1992年
0.0.2版本 • 1994年
1.0版本 • 2003年
2.6版本
上面所说的版本是指Linux的内核版本,不是指分支的发行版本。
开源文化
Linux是开源的操作系统。所谓开源就是指开放源代码。
• 人物Stallman 斯特曼
开源文化的倡导人。• 1983年GNU计划 • 1985年FSF基金会
• 1990年Emacs、GCC、程序库
• 1991年 Stallman去找Linus,商谈让Linux加入其开源计划(GNU计划)• 1992年GNU/Linux Linux分支
目前分支比较多,常见的有centos、RedHat、乌班图、debian等等。具体的分支,可以查看【文件】中的Linux分支图。
第五篇:黑马程序员PHP培训教程:GET请求
GET请求
语法:open(get|post,URL地址)PHP页面
用户名: 脚下留心:
1、IE不支持中文
2、=、&与请求的字符串的关键字相混淆。
解决:在js中通过encodeURIComponent()进行编码即可。
window.onload=function(){ document.getElementById('username').onblur=function(){
var name=document.getElementById('username').value;
name=encodeURIComponent(name);//编码 var req=new XMLHttpRequest();req.open('get','4-demo.php?name='+name);req.onreadystatechange=function(){ if(req.readyState==4 && req.status==200){
alert(req.responseText);} }
req.send(null);//如果send()方法中没有数据,要写null } } 测试
POST请求
1、通过send()发送数据
2、必须设置setRequestHeader()将传递的参数转成XML格式
3、post提交可以直接提交中文,不需要转码
4、post请求中的字符也会和URL中的&、=字符相混淆,所以建议也要使用encodeURIComponent()编码
5、在POST提交的同时,可以进行GET提交 PHP页面
用户名:
文档为doc格式
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
黑马程序员PHP培训教程:AJAX聊天室
AJAX聊天室 设计message表:用来保存聊天信息 获取最新的聊天记录 PHP页面:大于最大聊天编号的记录肯定是新的聊天记录 1 2 3 4 5 6 7 8 9......
黑马程序员PHP培训教程:同步和异步
同步和异步 req.open(参数传递的方法,URL,[true|false]) true:异步:同一个时间点允许多个进程,【默认】 false:同步:同一个时间点只能执行一个进程。 HTML代码 window.onload=......
黑马程序员PHP培训教程:Ajax文件上传
Ajax文件上传 DOM方式只能获取字符串类型数据,不能获取二进制数据。可以通过FormData对象来获取二进制数据。 PHP页面 HTML页面 1 2window.onload=function{ 3 documen......
黑马程序员:创建php导出订单~源码免费分享
创建php导出订单~源码免费分享 1. 2. 3. 4. 5. 6. 7. 8. 9. public static function arrayToExcel($title, $index, $data) { $filename = date('Y-m-d'); header("Cont......
黑马程序员PHP培训教程:发表聊天记录
发表聊天记录 HTML页面 function sendMessage{ var frm=document.getElementById('frm'); var fd=new FormData(frm); var req=new XMLHttpRequest; req.open('post......
黑马程序员:PHP零基础同学如何学习
零基础大学生们该如何学习php? 我们都知道,php语言作为一种专业建站的语言,没有华而不实,而是经受住了时间考验,成为一种值得学习的语言。现在国内众多的php学校也说明,php语言在......
struts2 从一个action 跳转到另一个action的两种方法(本站推荐)
从action1直接跳转到action2,有两种方法: 1. 需要保存前一个action的属性信息时使用,保存住action1的request对象: action2 2. 不保存前一个action的参数可以用这种方法:......
黑马程序员PHP培训教程:Linux安装-3
Linux安装-3 第十一步:选择磁盘类型,默认即可,点击【下一步】 第十二步:选择磁盘位置,选【创建新的磁盘】,然后点击【下一步】 第十三步:选择磁盘大小,默认20G 第十四步:设置磁盘文......