当前位置:  编程技术>php
本页文章导读:
    ▪php中var_export与var_dump的区别分析       一 var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5) var_dump -- 打印变量的相关信息 描述 void var_dump ( mixed expression [, mixed expression [, ...]] ) 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与.........
    ▪php visitFile()遍历指定文件夹函数       注:visitFile()有少量修改 代码如下: <? // 查看指定文件夹的文件 $fileList = array(); function visitFile($path) { global $fileList; $path = str_replace("\\", "/", $path); $fdir = dir($path); while (($file = $fdir->read()) !==.........
    ▪php excel类 phpExcel使用方法介绍       下载地址:http://www.codeplex.com/PHPExcel   下面是总结的几个使用方法   include ‘PHPExcel.php';   include ‘PHPExcel/Writer/Excel2007.php';   //或者include ‘PHPExcel/Writer/Excel5.php'; 用于输出.xls的  .........

[1]php中var_export与var_dump的区别分析
    来源: 互联网  发布时间: 2013-11-30

一 var_dump
(PHP 3 >= 3.0.5, PHP 4, PHP 5)
var_dump -- 打印变量的相关信息
描述
void var_dump ( mixed expression [, mixed expression [, ...]] )

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

代码如下:

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb'));
$data = var_dump($data,TRUE);
echo $data;

输出形式如下:
代码如下:

array(3) {
["name"]=>
string(3) "abc"
["job"]=>
string(10) "programmer"
["a"]=>
array(3) {
[0]=>
string(2) "aa"
[1]=>
string(2) "cc"
[2]=>
string(2) "bb"
}
}
bool(true)

二 var_export
(PHP 4 >= 4.2.0, PHP 5)
var_export -- 输出或返回一个变量的字符串表示
描述
mixed var_export ( mixed expression [, bool return] )

此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
EG:
var_export(array('a','b',array('aa','bb','cc'))) 这种与VAR_DUMP没什么区别;

$var =var_export(array('a','b',array('aa','bb','cc')),TRUE),加上TRUE后,不会再打印出来,而是给了一个变量,这样就可以直接输出;
echo $var;此时输出来的形式与var_dump()打印的相似。
EG2
代码如下:

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb'));
$data = var_export($data,TRUE);
echo $data;

输出形式如下:
代码如下:

array (
'name' => 'abc',
'job' => 'programmer',
'a' =>
array (
0 => 'aa',
1 => 'cc',
2 => 'bb',
),
)


以下是补充资料:
error_log(var_export(yblog_mspconfiginit("ratings"),true));
问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。而这个变量就会取得和被var_export一样的类型的值。但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL.

问题发现
在跟踪yratings_get_targets的时候,
代码如下:

error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL

导致我以为是无法建立和DB的连接,走错路了一天。

最后才发现,这是var_export和var_dump的区别之一

这就是:

问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值

但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL
实例
代码如下:

$res = yblog_mspconfiginit("ratings");
var_dump($res);
var_export($res);

结果:
代码如下:

resource(1) of type (yahoo_yblog)

NULL再比如:
代码如下:

$res = fopen('status.html', 'r');
var_dump($res);
var_export($res);

结果:
代码如下:

resource(2) of type (stream)
NULL

    
[2]php visitFile()遍历指定文件夹函数
    来源: 互联网  发布时间: 2013-11-30
注:visitFile()有少量修改
代码如下:

<?
// 查看指定文件夹的文件
$fileList = array();
function visitFile($path)
{
global $fileList;
$path = str_replace("\\", "/", $path);
$fdir = dir($path);
while (($file = $fdir->read()) !== false)
{
if($file == '.' || $file == '..'){ continue; }
$pathSub = preg_replace("*/{2,}*", "/", $path."/".$file); // 替换多个反斜杠
$fileList[] = is_dir($pathSub) ? $pathSub."/" : $pathSub;
if(is_dir($pathSub)){ visitFile($pathSub); }
}
$fdir->close();
return $fileList;
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<form method="get">
<?
$path = str_replace("\\", "/", $path);
$path = preg_replace("*/{2,}*", "/", $path);
?>
路径:<input type="text" name="path" id="path" value="<?=$path;?>"/><br>
<li>磁盘根目录 /</li>
<li>网络本地 ./phpMyAdmin</li>
<li>本地磁盘 file://C: 或者 C:</li>
<br>
<input name="action" type="submit" id="action" value="view" />
<input name="action" type="submit" id="action" value="delete" onclick="if(!confirm('是否删除 '+path.value+' 的所有子文件夹和子文件?')) return false;" />
</form>
<?
if(!empty($path)){
$path = preg_replace("*/{2,}*", "/", $path);
$files = visitFile($path);
switch(strtolower($_GET["action"]))
{
case "view":
foreach($files as $key => $value)
{
printf("No.%4d·%s<br>\r\n", $key+1, $value);
}
break;
case "delete":
$faileFiles = array();
foreach(array_reverse($files) as $value)
{
if(!unlink($value))
{
array_push($faileFiles, $value);
}
}
if(!unlink($path)) { array_push($faileFiles, $path); }
if(count($faileFiles) > 0)
{
printf("<br><br>删除失败文件(%d):<p>\r\n", count($faileFiles));
foreach( $faileFiles as $key => $value)
{
printf("No.%4d·%s<br>\r\n", $key+1, $value);
}
}
break;
}
}
?>

    
[3]php excel类 phpExcel使用方法介绍
    来源: 互联网  发布时间: 2013-11-30

下载地址:http://www.codeplex.com/PHPExcel
  下面是总结的几个使用方法
  include ‘PHPExcel.php';
  include ‘PHPExcel/Writer/Excel2007.php';
  //或者include ‘PHPExcel/Writer/Excel5.php'; 用于输出.xls的
  创建一个excel
  $objPHPExcel = new PHPExcel();
  保存excel—2007格式
  $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
  $objWriter->save("xxx.xlsx");
  直接输出到浏览器
  $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
  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-execl");
  header("Content-Type:application/octet-stream");
  header("Content-Type:application/download");;
  header('Content-Disposition:attachment;filename="resume.xls"‘);
  header("Content-Transfer-Encoding:binary");
  $objWriter->save('php://output');
  ——————————————————————————————————————–
  设置excel的属性:
  创建人
  $objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
  最后修改人
  $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
  标题
  $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
  题目
  $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
  描述
  $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
  关键字
  $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
  种类
  $objPHPExcel->getProperties()->setCategory("Test result file");
  ——————————————————————————————————————–
  设置当前的sheet
  $objPHPExcel->setActiveSheetIndex(0);
  设置sheet的name
  $objPHPExcel->getActiveSheet()->setTitle('Simple');
  设置单元格的值
  $objPHPExcel->getActiveSheet()->setCellValue('A1′, ‘String');
  $objPHPExcel->getActiveSheet()->setCellValue('A2′, 12);
  $objPHPExcel->getActiveSheet()->setCellValue('A3′, true);
  $objPHPExcel->getActiveSheet()->setCellValue('C5′, ‘=SUM(C2:C4)');
  $objPHPExcel->getActiveSheet()->setCellValue('B8′, ‘=MIN(B2:C5)');
  合并单元格
  $objPHPExcel->getActiveSheet()->mergeCells('A18:E22′);
  分离单元格
  $objPHPExcel->getActiveSheet()->unmergeCells('A28:B28′);
保护cell
  $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
  $objPHPExcel->getActiveSheet()->protectCells('A3:E13′, ‘PHPExcel');
  设置格式
  // Set cell number formats
  echo date('H:i:s') . " Set cell number formatsn";
  $objPHPExcel->getActiveSheet()->getStyle('E4′)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
  $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4′), ‘E5:E13′ );
  设置宽width
  // Set column widths
  $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
  $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
  设置font
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFont()->setName('Candara');
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFont()->setSize(20);
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFont()->setBold(true);
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
  $objPHPExcel->getActiveSheet()->getStyle('E1′)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
  $objPHPExcel->getActiveSheet()->getStyle('D13′)->getFont()->setBold(true);
  $objPHPExcel->getActiveSheet()->getStyle('E13′)->getFont()->setBold(true);
  设置align
  $objPHPExcel->getActiveSheet()->getStyle('D11′)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  $objPHPExcel->getActiveSheet()->getStyle('D12′)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  $objPHPExcel->getActiveSheet()->getStyle('D13′)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  $objPHPExcel->getActiveSheet()->getStyle('A18′)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
  //垂直居中
  $objPHPExcel->getActiveSheet()->getStyle('A18′)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  设置column的border
  $objPHPExcel->getActiveSheet()->getStyle('A4′)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  $objPHPExcel->getActiveSheet()->getStyle('B4′)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  $objPHPExcel->getActiveSheet()->getStyle('C4′)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  $objPHPExcel->getActiveSheet()->getStyle('D4′)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  $objPHPExcel->getActiveSheet()->getStyle('E4′)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  设置border的color
  $objPHPExcel->getActiveSheet()->getStyle('D13′)->getBorders()->getLeft()->getColor()->setARGB('FF993300′);
  $objPHPExcel->getActiveSheet()->getStyle('D13′)->getBorders()->getTop()->getColor()->setARGB('FF993300′);
  $objPHPExcel->getActiveSheet()->getStyle('D13′)->getBorders()->getBottom()->getColor()->setARGB('FF993300′);
  $objPHPExcel->getActiveSheet()->getStyle('E13′)->getBorders()->getTop()->getColor()->setARGB('FF993300′);
  $objPHPExcel->getActiveSheet()->getStyle('E13′)->getBorders()->getBottom()->getColor()->setARGB('FF993300′);
  $objPHPExcel->getActiveSheet()->getStyle('E13′)->getBorders()->getRight()->getColor()->setARGB('FF993300′);
  设置填充颜色
  $objPHPExcel->getActiveSheet()->getStyle('A1′)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $objPHPExcel->getActiveSheet()->getStyle('A1′)->getFill()->getStartColor()->setARGB('FF808080′);
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $objPHPExcel->getActiveSheet()->getStyle('B1′)->getFill()->getStartColor()->setARGB('FF808080′);
  加图片
  $objDrawing = new PHPExcel_Worksheet_Drawing();
  $objDrawing->setName('Logo');
  $objDrawing->setDescription('Logo');
  $objDrawing->setPath('./images/officelogo.jpg');
  $objDrawing->setHeight(36);
  $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  $objDrawing = new PHPExcel_Worksheet_Drawing();
  $objDrawing->setName('Paid');
  $objDrawing->setDescription('Paid');
  $objDrawing->setPath('./images/paid.png');
  $objDrawing->setCoordinates('B15′);
  $objDrawing->setOffsetX(110);
  $objDrawing->setRotation(25);
  $objDrawing->getShadow()->setVisible(true);
  $objDrawing->getShadow()->setDirection(45);
  $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  在默认sheet后,创建一个worksheet
  echo date('H:i:s') . " Create new Worksheet objectn";
  $objPHPExcel->createSheet();
  $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
  $objWriter-save('php://output');


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪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