首页
工具导航
友情链接
关于
Search
1
layui+php多文件列表,多图上传,包含表单修改,可适用于laravel框架和tp框架
3,688 阅读
2
设置邮箱头像方法,gravatar头像设置
2,603 阅读
3
关于本地larvael项目部署到服务器报错Whoops, looks like something went wrong.的问题
2,592 阅读
4
百度工具DNS无法解析IP
1,782 阅读
5
在复制codepen代码时踩得坑,three.js实现的特效
1,653 阅读
东扯西扯
网站建站
SEO优化
公众号开发
登录
Search
标签搜索
php
css
laravel
宝塔面板
jQuery
mysql
js
vscode
layui
thinkphp
多图上传
插件
navicat
gravatar头像
轻量应用服务器
seo
html
腾讯云
微信支付
redis
EzraYes
累计撰写
104
篇文章
累计收到
13
条评论
首页
栏目
东扯西扯
网站建站
SEO优化
公众号开发
页面
工具导航
友情链接
关于
搜索到
104
篇与
Ezra
的结果
2023-03-16
php生成excel文件
/** * Notes:导出数据库数据为excel,返回文件路由 * @param $list 数据 * @param $name 文件名称 * @param $fields 表头,与$list对应好 */ function exportUrl($list, $name, $fields) { set_time_limit(0); $excel_title = []; if ($list) { $keys = array_keys($list[0]); foreach ($fields as $key => $field) { if (in_array($key, $keys)) { $excel_title[] = $field; } } } else { //没有数据时导出表头 foreach ($fields as $k => $v) { $excel_title[] = $v; } } vendor("PHPExcel.PHPExcel"); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getProperties()->setCreator("ctos") ->setLastModifiedBy("ctos") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $lie1 = []; $last = 'A'; for ($i = 1; $i <= count($excel_title); $i++) { if (array_search($excel_title[$i - 1], $fields)) { $lie1[array_search($excel_title[$i - 1], $fields)] = numCovertLetter($i); $result = numCovertLetter($i) . '1'; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($result, $excel_title[$i - 1]); $last = numCovertLetter($i); } } // 水平居中 $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 垂直居中 $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); //设置行宽度 $objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(15); // $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); //设置行高度 $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10); $objPHPExcel->getActiveSheet()->getStyle('A1:' . $last . '1')->getFont()->setBold(true); for ($j = 0; $j < count($list); $j++) { foreach ($lie1 as $key => $item) { $objPHPExcel->getActiveSheet(0)->setCellValue($item . ($j + 2), $list[$j][$key]); } } // 设置单元格换行 $objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(True); //边框线 $style_array = array( 'borders' => array( 'allborders' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN ) )); $objPHPExcel->getActiveSheet()->getStyle('A2:' . $last . (count($list) + 1))->applyFromArray($style_array); $dir = '../public/tableData/excel/' . date('Ymd'); if (!is_dir($dir)) { mkdir($dir, 0777, true); } $fielName = $name . '_' . date('YmdHis') . mt_rand(1111, 9999); $url = $dir . '/' . $fielName . '.xlsx'; $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save($url); $new_url = substr($url, 9); $data = [ //'url' => 'http://' . $_SERVER['SERVER_NAME'] . ":" . $_SERVER['SERVER_PORT'] . $new_url, 'url' => $new_url, 'name' => $fielName . '.xlsx' ]; return setReturn(200, '', $data); }
2023年03月16日
137 阅读
0 评论
0 点赞
2023-02-27
SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL 提供程序: 证书链是由不受信任的颁发机构颁发的。
// 连接dsn 'dsn' => 'sqlsrv:Database=tp_water_tianyi;Server=192.168.1.15,1433;TrustServerCertificate=true',
2023年02月27日
536 阅读
0 评论
0 点赞
2022-09-14
一个http请求类
<?php namespace xxxx; /** * Http 请求类 */ class Http { /** * 发送一个POST请求 * @param string $url 请求URL * @param array $params 请求参数 * @param array $options 扩展参数 * @return mixed|string */ public static function post($url, $params = [], $options = []) { $req = self::sendRequest($url, $params, 'POST', $options); return $req['ret'] ? $req['msg'] : ''; } /** * 发送一个GET请求 * @param string $url 请求URL * @param array $params 请求参数 * @param array $options 扩展参数 * @return mixed|string */ public static function get($url, $params = [], $options = []) { $req = self::sendRequest($url, $params, 'GET', $options); return $req['ret'] ? $req['msg'] : ''; } /** * CURL发送Request请求,含POST和REQUEST * @param string $url 请求的链接 * @param mixed $params 传递的参数 * @param string $method 请求的方法 * @param mixed $options CURL的参数 * @return array */ public static function sendRequest($url, $params = [], $method = 'POST', $options = []) { $method = strtoupper($method); $protocol = substr($url, 0, 5); $query_string = is_array($params) ? http_build_query($params) : $params; $ch = curl_init(); $defaults = []; if ('GET' == $method) { $geturl = $query_string ? $url . (stripos($url, "?") !== false ? "&" : "?") . $query_string : $url; $defaults[CURLOPT_URL] = $geturl; } else { $defaults[CURLOPT_URL] = $url; if ($method == 'POST') { $defaults[CURLOPT_POST] = 1; } else { $defaults[CURLOPT_CUSTOMREQUEST] = $method; } $defaults[CURLOPT_POSTFIELDS] = $params; } $defaults[CURLOPT_HEADER] = false; $defaults[CURLOPT_USERAGENT] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.98 Safari/537.36"; $defaults[CURLOPT_FOLLOWLOCATION] = true; $defaults[CURLOPT_RETURNTRANSFER] = true; $defaults[CURLOPT_CONNECTTIMEOUT] = 3; $defaults[CURLOPT_TIMEOUT] = 3; // disable 100-continue curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); if ('https' == $protocol) { $defaults[CURLOPT_SSL_VERIFYPEER] = false; $defaults[CURLOPT_SSL_VERIFYHOST] = false; } curl_setopt_array($ch, (array)$options + $defaults); $ret = curl_exec($ch); $err = curl_error($ch); if (false === $ret || !empty($err)) { $errno = curl_errno($ch); $info = curl_getinfo($ch); curl_close($ch); return [ 'ret' => false, 'errno' => $errno, 'msg' => $err, 'info' => $info, ]; } curl_close($ch); return [ 'ret' => true, 'msg' => $ret, ]; } /** * 异步发送一个请求 * @param string $url 请求的链接 * @param mixed $params 请求的参数 * @param string $method 请求的方法 * @return boolean TRUE */ public static function sendAsyncRequest($url, $params = [], $method = 'POST') { $method = strtoupper($method); $method = $method == 'POST' ? 'POST' : 'GET'; //构造传递的参数 if (is_array($params)) { $post_params = []; foreach ($params as $k => &$v) { if (is_array($v)) { $v = implode(',', $v); } $post_params[] = $k . '=' . urlencode($v); } $post_string = implode('&', $post_params); } else { $post_string = $params; } $parts = parse_url($url); //构造查询的参数 if ($method == 'GET' && $post_string) { $parts['query'] = isset($parts['query']) ? $parts['query'] . '&' . $post_string : $post_string; $post_string = ''; } $parts['query'] = isset($parts['query']) && $parts['query'] ? '?' . $parts['query'] : ''; //发送socket请求,获得连接句柄 $fp = fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80, $errno, $errstr, 3); if (!$fp) { return false; } //设置超时时间 stream_set_timeout($fp, 3); $out = "{$method} {$parts['path']}{$parts['query']} HTTP/1.1\r\n"; $out .= "Host: {$parts['host']}\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Content-Length: " . strlen($post_string) . "\r\n"; $out .= "Connection: Close\r\n\r\n"; if ($post_string !== '') { $out .= $post_string; } fwrite($fp, $out); //不用关心服务器返回结果 //echo fread($fp, 1024); fclose($fp); return true; } /** * 发送文件到客户端 * @param string $file * @param bool $delaftersend * @param bool $exitaftersend */ public static function sendToBrowser($file, $delaftersend = true, $exitaftersend = true) { if (file_exists($file) && is_readable($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment;filename = ' . basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check = 0, pre-check = 0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); if ($delaftersend) { unlink($file); } if ($exitaftersend) { exit; } } } }
2022年09月14日
184 阅读
0 评论
0 点赞
2022-07-22
laravel 多条件查询[A OR B] AND C AND D
$res=WendangJd::orderBy('created_at','desc')->where(function($res){ $res=$res->where('status','>=',200) ->orwhere('xhjd','>=',200) ; })->where('id','!=','')->get();
2022年07月22日
267 阅读
0 评论
0 点赞
2022-07-21
php异步请求
//异步执行 public function triggerRequest($cljbxx=null, $taizhang=null){ $url = "http://127.0.0.1:8000/admin/upgcxx?cljbxx=$cljbxx&taizhang=$taizhang"; // print_r(parse_url($url));// 解析 URL,返回其组成部分 /* get提交 */ // $data = array( // 'foo' => 'bar', // 'baz' => 'boom', // 'site' => 'www.tbrer.com', // 'name' => 'nowa magic' // ); $info = parse_url($url); // dd($data); // $query_str = http_build_query($data);// http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串 $query_str = $info['query']; // dd($info); $fp = fsockopen($info["host"],8000,$errno,$errstr,30); $head = "GET " . $info['path'] . '?' . $query_str . " HTTP/1.0\r\n"; $head .= "Host: " . $info['host'] . "\r\n"; $head .= "\r\n"; $write = fputs($fp,$head); // while(!feof($fp)){ // $line = fread($fp,4096); // // echo $line; // } }
2022年07月21日
286 阅读
0 评论
0 点赞
1
...
4
5
6
...
21