当前位置: 编程技术>php
本页文章导读:
▪PHP服务器页面间跳转实现方法
(注意不是用 header ,js 等方法做的客户端跳转) 代码如下: function server_transfer($dest) { global ...; // 把希望在新页面中用到的本页变量或者自定义的全局变量列在这里 include $dest; // 运行新脚本 exi.........
▪php中3des加密代码(完全与.net中的兼容)
代码如下: <?php class Crypt3Des { private $key = ""; private $iv = ""; /** * 构造,传递二个已经进行base64_encode的KEY与IV * * @param string $key * @param string $iv */ function __construct ($key, $iv) { if (empty($key) || empty($.........
▪浏览器关闭后,能继续执行的php函数(ignore_user_abort)
多的不说,直接上代码: 代码如下: ignore_user_abort(true); //设置客户端断开连接时是否中断脚本的执行 set_time_limit(0); $file = '/tmp/ignore_user.txt'; if(!file_exists($file)) { file_put_contents($file); } if(!$handl.........
[1]PHP服务器页面间跳转实现方法
来源: 互联网 发布时间: 2013-11-30
(注意不是用 header ,js 等方法做的客户端跳转)
function server_transfer($dest)
{
global ...; // 把希望在新页面中用到的本页变量或者自定义的全局变量列在这里
include $dest; // 运行新脚本
exit; // 退出本脚本
}
注意:
1. 如果跳转之前输出的任何数据都会在新页面中显示,除非使用 ob_start 缓冲,可以在跳转之前清空,这样就互不影响了.
2. 由于新页面在一个自定义的函数作用域内运行,所以本页面定义的变量不会影响到新页面,这点是好处也是坏处.
3. 新页面依然可以用 $_POST 等超全局变量访问到本来属于本页面的变量,编写代码是需要注意.
4. 要考虑到本页面和新页面重复包含的问题,如果两个页面都包含同一个页面,比如页眉页脚,要用 require_once.
总而言之,跳转可以做到,但是程序员要清楚都发生了什么,否则很容易得到一些奇怪的结果.
代码如下:
function server_transfer($dest)
{
global ...; // 把希望在新页面中用到的本页变量或者自定义的全局变量列在这里
include $dest; // 运行新脚本
exit; // 退出本脚本
}
注意:
1. 如果跳转之前输出的任何数据都会在新页面中显示,除非使用 ob_start 缓冲,可以在跳转之前清空,这样就互不影响了.
2. 由于新页面在一个自定义的函数作用域内运行,所以本页面定义的变量不会影响到新页面,这点是好处也是坏处.
3. 新页面依然可以用 $_POST 等超全局变量访问到本来属于本页面的变量,编写代码是需要注意.
4. 要考虑到本页面和新页面重复包含的问题,如果两个页面都包含同一个页面,比如页眉页脚,要用 require_once.
总而言之,跳转可以做到,但是程序员要清楚都发生了什么,否则很容易得到一些奇怪的结果.
[2]php中3des加密代码(完全与.net中的兼容)
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
class Crypt3Des
{
private $key = "";
private $iv = "";
/**
* 构造,传递二个已经进行base64_encode的KEY与IV
*
* @param string $key
* @param string $iv
*/
function __construct ($key, $iv)
{
if (empty($key) || empty($iv)) {
echo 'key and iv is not valid';
exit();
}
$this->key = $key;
$this->iv = $iv;
}
/**
*加密
* @param <type> $value
* @return <type>
*/
public function encrypt ($value)
{
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
$iv = base64_decode($this->iv);
$value = $this->PaddingPKCS7($value);
$key = base64_decode($this->key);
mcrypt_generic_init($td, $key, $iv);
$ret = base64_encode(mcrypt_generic($td, $value));
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
/**
*解密
* @param <type> $value
* @return <type>
*/
public function decrypt ($value)
{
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
$iv = base64_decode($this->iv);
$key = base64_decode($this->key);
mcrypt_generic_init($td, $key, $iv);
$ret = trim(mdecrypt_generic($td, base64_decode($value)));
$ret = $this->UnPaddingPKCS7($ret);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $ret;
}
private function PaddingPKCS7 ($data)
{
$block_size = mcrypt_get_block_size('tripledes', 'cbc');
$padding_char = $block_size - (strlen($data) % $block_size);
$data .= str_repeat(chr($padding_char), $padding_char);
return $data;
}
private function UnPaddingPKCS7 ($text)
{
$pad = ord($text{strlen($text) - 1});
if ($pad > strlen($text)) {
return false;
}
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {
return false;
}
return substr($text, 0, - 1 * $pad);
}
}
?>
[3]浏览器关闭后,能继续执行的php函数(ignore_user_abort)
来源: 互联网 发布时间: 2013-11-30
多的不说,直接上代码:
ignore_user_abort(true); //设置客户端断开连接时是否中断脚本的执行
set_time_limit(0);
$file = '/tmp/ignore_user.txt';
if(!file_exists($file)) {
file_put_contents($file);
}
if(!$handle = fopen($file,'a+b')){
echo "not open file :".$file;
exit;
}
$i=0;
while($i<100) {
$time = date("Y-m-d H:i:s",time());
echo $time."\n";
if(fwrite($handle,$time."\n")===false) {
echo "not write file:".$file;
exit;
}
echo "write file time:".$time."\n";
$i++;
sleep(2);
}
fclose($handle);
代码如下:
ignore_user_abort(true); //设置客户端断开连接时是否中断脚本的执行
set_time_limit(0);
$file = '/tmp/ignore_user.txt';
if(!file_exists($file)) {
file_put_contents($file);
}
if(!$handle = fopen($file,'a+b')){
echo "not open file :".$file;
exit;
}
$i=0;
while($i<100) {
$time = date("Y-m-d H:i:s",time());
echo $time."\n";
if(fwrite($handle,$time."\n")===false) {
echo "not write file:".$file;
exit;
}
echo "write file time:".$time."\n";
$i++;
sleep(2);
}
fclose($handle);
最新技术文章: