当前位置:  编程技术>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.

总而言之,跳转可以做到,但是程序员要清楚都发生了什么,否则很容易得到一些奇怪的结果.

    
[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);

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
移动开发 iis7站长之家
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3