当前位置: 编程技术>php
本页文章导读:
▪php 数组排序的实例代码 php 数组排序,代码分享。
如下:
<?php
/**
// @param array $list 查询结果
// @param string $field 排序的字段名
// @param array $sortby 排序类型
// asc正向排序 desc逆向排序 nat自然排序
// edit by wwww.
*.........
▪php下载文件的函数示例(图文) php下载文件的函数举例,如下:
<?php
/**
* php下载文件
* $filename=$_SERVER['DOCUMENT_ROOT']."/test/file/20130503/20130503150036_85945.doc";
* $title="下载测试9";
* down($filename,$title);
* edit by www.
*/
//$filename.........
▪php 调用用户自定义函数的方法详解 在php中调有自定义函数,经常会用到call_user_func函数、call_user_func_array函数、call_user_func函数。
1,call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:
<?php
//call_user_func函数.........
[1]php 数组排序的实例代码
来源: 互联网 发布时间: 2013-12-24
php 数组排序,代码分享。
如下:
<?php
/**
// @param array $list 查询结果
// @param string $field 排序的字段名
// @param array $sortby 排序类型
// asc正向排序 desc逆向排序 nat自然排序
// edit by wwww.
*/
function list_sort_by($list,$field, $sortby='asc') {
if(is_array($list)){
$refer = $resultSet = array();
foreach ($list as $i => $data){
$refer[$i] = &$data[$field];
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc':// 逆向排序
arsort($refer); print_r($refer);echo '</br>';
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
}
foreach ( $refer as $key=> $val){
$resultSet[] = &$list[$key];
}
return $resultSet;
}
return false;
}
$arr = array(
1 => array('id'=>1,'pid'=>0),
2 => array('id'=>2,'pid'=>1),
3 => array('id'=>3,'pid'=>1),
4 => array('id'=>4,'pid'=>3)
);
$list = list_sort_by($arr,'id','desc'); print_r($list);
?>
[2]php下载文件的函数示例(图文)
来源: 互联网 发布时间: 2013-12-24
php下载文件的函数举例,如下:
<?php
/**
* php下载文件
* $filename=$_SERVER['DOCUMENT_ROOT']."/test/file/20130503/20130503150036_85945.doc";
* $title="下载测试9";
* down($filename,$title);
* edit by www.
*/
//$filename 必须是路径,不是url
function down($filename,$title=''){
$file = fopen($filename,"r");
$filesize = filesize($filename);
$encoded_filename = urlencode($title);
$encoded_filename = str_replace("+", "%20", $title);
$ua = $_SERVER["HTTP_USER_AGENT"];
if (preg_match("/MSIE/is", $ua)) {
$file_name = urlencode($title);
header("Pragma: public"); header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename='.$file_name);
} else {
header('Content-Type: application/octet-stream');
if (preg_match("/Firefox/is", $ua)) {
header('Content-Disposition: attachment; filename*="utf8\'\'' . $title . '"');
} else {
header('Content-Disposition: attachment; filename="' . $title . '"');
}
}
echo fread($file, $filesize);
fclose($file);
}
?>
运行效果如下图:
[3]php 调用用户自定义函数的方法详解
来源: 互联网 发布时间: 2013-12-24
在php中调有自定义函数,经常会用到call_user_func函数、call_user_func_array函数、call_user_func函数。
1,call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:
<?php
//call_user_func函数
//by www.
function a($b,$c)
{
echo $b;
echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");
//显示 111 222 333 444
?>
调用类内部的方法比较奇怪,用到了array,省去了new操作,在一定程度上节省了资源:
<?php
class a {
function b($c)
{
echo $c;
}
}
call_user_func(array("a", "b"),"111");
//显示 111
?>
2,call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰。
例如:
<?php
//call_user_func_array 调用自定义函数
//by www.
function a($b, $c)
{
echo $b;
echo $c;
}
call_user_func_array('a', array("111", "222"));
//显示 111 222
?>
call_user_func_array函数也可以调用类内部的方法。
例如:
<?php
Class ClassA
{
function bc($b, $c) {
$bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));
//显示 333
?>
3,call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
<?php
//call_user_func函数 调用自定义函数
//by www.
function a($b)
{
$b++;
}
$c = 0;
call_user_func('a', $c);
echo $c;//显示 1
call_user_func_array('a', array($c));
echo $c;//显示 2
?>
另外,call_user_func函数和call_user_func_array函数都支持引用。
<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>最新技术文章: