thinkphp5 composer安装phpexcel插件及使用

1.在下载好的tp5.0 框架里面使用 composer 下载phpexcel 的插件

composer require phpoffice/phpexcel

在下载好之后需要将/vendor/phpoffice/phpexcel/classes/phpexcel/ole.php 里面的continue 改为break;

2.在框架里面创建使用phpexcel 导出方法

引入相应的类

use PHPExcel_IOFactory;
use PHPExcel;
public function export()
{
	//1.从数据库中取出数据
	$list = Admins::where('login_status', 0)->order('id', 'desc')->column('id,username,phone,create_time');
	$list = array_values($list);

	//3.实例化PHPExcel类
	$objPHPExcel = new \PHPExcel();

	//4.激活当前的sheet表
	$objPHPExcel->setActiveSheetIndex(0);

	//5.设置表格头(即excel表格的第一行)
	$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'ID')->setCellValue('B1', '用户名')->setCellValue('C1', '手机号码')->setCellValue('D1', '创建时间');

	//设置B列水平居中
	$objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

	//设置单元格宽度
	$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(15);
	$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);

	//6.循环刚取出来的数组,将数据逐一添加到excel表格。
	for($i=0;$i<count($list);$i++){
		$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//添加ID
		$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['username']);//添加用户名
		$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['phone']);//添加手机号码
		$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['create_time']);//添加创建时间
	}

	//7.设置保存的Excel表格名称
	$filename = '管理员'.date('ymd',time()).'.xls';

	//8.设置当前激活的sheet表格名称;
	$objPHPExcel->getActiveSheet()->setTitle('管理员列表');

	//9.设置浏览器窗口下载表格
	header("Content-Type: application/force-download");
	header("Content-Type: application/octet-stream");
	header("Content-Type: application/download");
	header('Content-Disposition:inline;filename="'.$filename.'"');

	//生成excel文件
	$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

	//下载文件在浏览器窗口
	$objWriter->save('php://output');
	exit;
}

3.这里面的excel 的格式是定式的 ,如果表字段比较多的话可以创建数组循环设置

composer 版本忽略

执行 composer update 命令的时候报 Your requirements could not be resolved to an installable set of packages. 错误

Your requirements could not be resolved to an installable set of packages.

以上原因:不匹配composer.json要求的版本。

解决方案:

composer可以设置忽略版本匹配,

composer install –ignore-platform-reqs

composer update –ignore-platform-reqs
再次执行composer命令可以正常安装包了。
————————————————
版权声明:本文为CSDN博主「请叫我大稳哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35646802/article/details/103009912

php CURL 请求头和响应头获取

1.从CURL中获取响应头

$oCurl = curl_init();
// 设置请求头, 有时候需要,有时候不用,看请求网址是否有对应的要求
$header[] = "Content-type: application/x-www-form-urlencoded";
$user_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36";
curl_setopt($oCurl, CURLOPT_URL, $sUrl);
curl_setopt($oCurl, CURLOPT_HTTPHEADER,$header);
// 返回 response_header, 该选项非常重要,如果不为 true, 只会获得响应的正文
curl_setopt($oCurl, CURLOPT_HEADER, true);
// 是否不需要响应的正文,为了节省带宽及时间,在只需要响应头的情况下可以不要正文
curl_setopt($oCurl, CURLOPT_NOBODY, true);
// 使用上面定义的 ua
curl_setopt($oCurl, CURLOPT_USERAGENT,$user_agent);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
 
// 不用 POST 方式请求, 意思就是通过 GET 请求
curl_setopt($oCurl, CURLOPT_POST, false);
 
$sContent = curl_exec($oCurl);
// 获得响应结果里的:头大小
$headerSize = curl_getinfo($oCurl, CURLINFO_HEADER_SIZE);
// 根据头大小去获取头信息内容
$header = substr($sContent, 0, $headerSize);
    
curl_close($oCurl);

2.从curl中获取请求头

$oCurl = curl_init();
 curl_setopt($oCurl, CURLOPT_URL, "https://117.28.240.235:8002/ipcc/agent/login");
 curl_setopt($oCurl, CURLOPT_HTTPHEADER, $header);
//关闭https验证
 curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
//至关重要,CURLINFO_HEADER_OUT选项可以拿到请求头信息
curl_setopt($oCurl, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($oCurl, CURLOPT_POST, 1);
curl_setopt($oCurl, CURLOPT_POSTFIELDS, $bodystr);
$sContent = curl_exec($oCurl);
//通过curl_getinfo()可以得到请求头的信息
$a=curl_getinfo($oCurl);

php curl共享数据

<?php
// 创建 cURL 共享句柄,并设置共享 cookie 数据
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// 初始化第一个 cURL 句柄,并将它设置到共享句柄
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// 执行第一个 cURL 句柄
curl_exec($ch1);

// 初始化第二个 cURL 句柄,并将它设置到共享句柄
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// 执行第二个 cURL 句柄
//  all cookies from $ch1 handle are shared with $ch2 handle
curl_exec($ch2);

// 关闭 cURL 共享句柄
curl_share_close($sh);

// 关闭 cURL 共享句柄
curl_close($ch1);
curl_close($ch2);
?>

php导出utf8 csv解决打开乱码问题

private function export_csv($filename,$data) {
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo chr(239).chr(187).chr(191);
        echo $data;
    }

php随机生成MAC地址

php随机生成MAC地址代码,前三个为固定mac头,根据要用的更改

function mac_gen(){
	$array=array(
		0x1C,
		0x1C,
		0x1C,
		mt_rand(0x00, 0x7f),
		mt_rand(0x00, 0xff),
		mt_rand(0x00, 0xff)
	);
	return join(':',array_map(function($v){
		return sprintf("%02X",$v);
	},$array));
}