默塞德河, 优胜美地国家公园, 加利福尼亚, 美国 (© Ron and Patty Thomas/Getty Images)

Welcom to 评论 - lizhenqiu blog!

    #153

    作者:广西南宁市
    机械键盘的红、黑、青、 茶四种轴区别如下:

    1.黑轴,黑轴是一种线性手感的机械轴,线性手感就是直上直下的手感,举个例子,用手指将弹簧按下去,然后弹簧通过弹性势能回弹,同时回馈给手指力道,之就是线性手感。黑轴是最硬的机械轴,同时给予用户的回报就是快速回弹,也就意味着单键连续操作速度快。黑轴适合正常强度玩游戏,少打字的用户。

    2.红轴,红轴就是轻量级黑轴。线性手感。红轴适合高速打字员、职业游戏玩家等相对专业性较强的用户。因为专业用户平时需要大量的练习来提高职业技能,同时也要求高速的反应。唯有红轴能满足这样的需求。

    3.茶轴,非线性手感,有段落感。段落感就是按下键时微弱卡顿的感觉。茶轴是机械轴中的万金油,适合绝大多数的用户。可打字,可游戏。
    4.青轴,将老式打字机的手感引入茶轴中,青轴有明确的段落感以及清脆的点击声,是四种轴中最好玩的轴,使用快感最强,也适合大多数用户。

    今天试了试四种轴,我自己的感觉是
    茶轴最好,有轻微的段落感,声音清脆一些。
    青轴最不舒服,手指感觉很累。所谓的段落感,就是一种按压老式开关的声音和感觉。声音很响。
    黑轴感觉按键回弹力量比较大,所以手指按压时受到的阻力较大,感觉也不是很舒服。声音沉闷一些。
    红轴的声音最轻,阻力最小。红轴的感觉是不是在敲打键盘。
    文章:ios h5播放视频不了  发表时间:2022-08-16, 17:39:20  
    展开↯

    #154

    作者:广西南宁市
    微信网页分享给朋友updateTimelineShareData自定义分享出去都是url

    微信改了外链规则,如果你是点聊天界面的url进去分享出来的是 URL ,如果你是扫描二维码或别人分享进去分享就是 你设置的分享内容。
    总结:必须是二维码或分享进去设置的分享内容才有效。

    注意:
    1、目前还可以从公众号菜单进入分享、访问网页后添加到收藏,从我的收藏进入分享正常。
    2、其他入口应该分享都是链接了。
    #,广西南宁市,2022-08-16,14:24:32, 这是正常的,微信在上次开放全域名后改的。目前还可以从公众号菜单进入分享、访问网页后添加到收藏,从我的收藏进入分享正常。其他入口应该分享都是链接了。
    #,广西南宁市,2022-08-16,14:28:15, 1,在公众号菜单中的链接打开,才能正常分享卡片;2,可以通过收藏链接,再打开分享也是卡片;3,把链接换成二维码,扫码后进入分享也是卡片。所有的前提是你配置必须OK!如果是用微信直接打开链接分享会是链接。
    #,广西南宁市,2022-08-16,14:29:48, 我发现还有一个情况,打开聊天框 随便引用一条聊天记录,发送链接,再点进去分享也是卡片
    文章:微信网页授权snsapi_base,snsapi_userinfo  发表时间:2022-08-16, 14:24:13  
    展开↯

    #155

    作者:广西南宁市
    //今天开始 $beginToday = date('Y-m-d 00:00:00', time()); //今天结束 $endToday = date('Y-m-d 23:59:59', time()); //昨天开始 $beginYesterday = date('Y-m-d 00:00:00', strtotime(' -1 day')); //昨天结束 $endYesterday = date('Y-m-d 23:59:59', strtotime(' -1 day')); //本周开始,周一开始 $beginThisWeek = date('Y-m-d 00:00:00', strtotime('this week monday')); //本周结束,周日结束 $endThisWeek = date('Y-m-d 23:59:59', strtotime('this week sunday')); //上周开始,周一开始 $beginLastWeek = date('Y-m-d 00:00:00', strtotime('last week monday')); //上周结束,周日结束 $endLastWeek = date('Y-m-d 23:59:59', strtotime('last week sunday')); //本月开始 $beginThisMonth = date('Y-m-01 00:00:00'); //本月结束 $endThisMonth = date('Y-m-d 23:59:59', strtotime('Last day of this month')); //上月开始 $beginLastMonth = date('Y-m-01 00:00:00', strtotime('last month')); //上月结束 $endLastMonth = date('Y-m-d 23:59:59', strtotime('Last day of last month')); //本季度开始 $beginThisSeason = date('Y-m-01 00:00:00', strtotime((1 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //本季度结束 $endThisSeason = date('Y-m-d 23:59:59', strtotime('last day of' . (3 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //上季度开始 $beginLastSeason = date('Y-m-01 00:00:00', strtotime((-2 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //上季度结束 $endLastSeason = date('Y-m-d 23:59:59', strtotime('last day of' . (- (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //本年度开始 $beginThisYear = date('Y-01-01 00:00:00'); //本年度结束 $endThisYear = date('Y-12-31 23:59:59'); //上年度开始 $beginLastYear = date('Y-01-01 00:00:00', strtotime('last year')); //上年度结束 $endLastYear = date('Y-12-31 23:59:59', strtotime('last year'));
    Run code
    Cut to clipboard
      展开↯

      #156

      作者:广西南宁市
      //php获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; //php获取昨日起始时间戳和结束时间戳 $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1; //php获取上周起始时间戳和结束时间戳 $beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')); $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); //php获取本月起始时间戳和结束时间戳 $beginThismonth=mktime(0,0,0,date('m'),1,date('Y')); $endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
      Run code
      Cut to clipboard
        展开↯

        #157

        作者:广西南宁市
        <?php //今天 $today = date("Y-m-d"); //昨天 $yesterday = date("Y-m-d", strtotime(date("Y-m-d"))-86400); //上周 $lastweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))); $lastweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))); //本周 $thisweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))); $thisweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))); //上月 $lastmonth_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))); $lastmonth_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))); //本月 $thismonth_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))); $thismonth_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))); //本季度未最后一月天数 $getMonthDays = date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y"))); //本季度/ $thisquarter_start = date('Y-m-d H:i:s', mktime(0, 0, 0,date('n')-(date('n')-1)%3,1,date('Y'))); $thisquarter_end = date('Y-m-d H:i:s', mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y'))); ?>
        Run code
        Cut to clipboard
          展开↯

          #158

          作者:广西南宁市
          ThinkPHP6实现下载文件
          public function download() { $famlePath = $_GET['resum']; $file_dir = ROOT_PATH . 'public' . DS . 'uploads' . '/' . "$famlePath"; // 下载文件存放目录 // 检查文件是否存在 if (! file_exists($file_dir) ) { $this->error('文件未找到'); }else{ // 打开文件 $file1 = fopen($file_dir, "r"); // 输入文件标签 Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length:".filesize($file_dir)); Header("Content-Disposition: attachment;filename=" . $file_dir); ob_clean(); // 重点!!! flush(); // 重点!!!!可以清除文件中多余的路径名以及解决乱码的问题: //输出文件内容 //读取文件内容并直接输出到浏览器 echo fread($file1, filesize($file_dir)); fclose($file1); exit(); } }
          Run code
          Cut to clipboard
            #,广西,2022-08-15,16:36:02, thinkphp 将数据库中的HTML标签显示到页面
            {$product.desc|raw}
            Run code
            Cut to clipboard
              文章:ThinkPHP6 公共 上传到本地  发表时间:2022-07-29, 11:33:51  
              展开↯

              #159

              作者:广西
              ios html5 video 封面

              1、问题描述:
              video标签用poster属性写入视频封面图在chrome系列浏览器可以正常显示,但是在PC端苹果Safari浏览器却无法显示,把poster网络图片链接切换成本地图片也不行。

              2、分析原因:
              通过查找资料得知,当前所有主流浏览器都支持 poster 属性,所以不是浏览器兼容问题。(注释:Internet Explorer 8 以及更早的版本不支持 <video> 标签。)

              转换思维,应该是苹果Safari浏览器的默认行为。当Safari浏览器加载完视频第一帧后,video标签就会直接显示第一帧画面,而没有显示poster属性设置的图片。

              3、解决方法:
              在video标签中设置预加载属性 preload= "none",使当前页面不预加载该视频,则会默认显示poster属性的封面图
              <video id="video" controls poster="/images/poster.jpg" preload="none"> <source src="/assets/test.mp4" type='video/mp4' /> </video>
              Run code
              Cut to clipboard

                文章:ios h5播放视频不了  发表时间:2022-08-15, 10:30:22  
                展开↯

                #160

                作者:广西
                ctrl键失灵了该怎么修复?电脑ctrl失灵的两种修复方法

                ctrl这个按键可以说我们使用的每个组合快捷键都会使用到,比如我们在win10 64位专业版系统最经常使用的复制(ctrl+C)和粘贴(ctrl+V),这两个是我们生活最频繁使用的组合快捷键了,可是当ctrl键失灵了,我们该怎么修复呢?虽然出现这种情况的几率很低,但是有时还是会碰到,下面,小编给大家提前做个准备。

                电脑ctrl失灵修复方法一:针对软件
                1、按Ctrl+Alt+Fn;每次用Ctrl键前都得按一次;
                2、按Ctrl+Alt+Fn+F11;
                3、同时按住两个Ctrl键一小会;
                4、将电脑中的第三方安全防护软件卸载,并启用干净启动模式进行启动即可!

                电脑ctrl失灵修复方法二:针对硬件

                如果是笔记本,就将排线重插即可,如果之前有过拆机经历的话那么没准就是安装键盘排线的时候没有安装好,键盘排线松脱导致的,把键盘排线拔掉重插一遍即可解决问题。
                文章:ios h5播放视频不了  发表时间:2022-08-15, 10:28:51  
                展开↯

                #161

                作者:广西
                GO语言"strings"包中"HasPrefix"函数的用法及代码示例
                用法:
                func HasPrefix(s, prefix string) bool
                Run code
                Cut to clipboard

                  HasPrefix 测试字符串 s 是否以前缀开头

                  例子:
                  package main import ( "fmt" "strings" ) func main() { fmt.Println(strings.HasPrefix("Gopher", "Go")) fmt.Println(strings.HasPrefix("Gopher", "C")) fmt.Println(strings.HasPrefix("Gopher", "")) }
                  Run code
                  Cut to clipboard


                    输出:
                    true
                    false
                    true
                    文章:Go判断包含字符串  发表时间:2022-08-09, 17:49:29  
                    展开↯

                    #162

                    作者:广西南宁市
                    微信开放接口 微信网站应用 微信扫码登录错误
                    edge ghostery AppID 参数错误
                    此错误为 插件 Ghostery – 隐私广告拦截工具 引起,

                    信用网站或删除停用可解决
                    文章:微信网页授权snsapi_base,snsapi_userinfo  发表时间:2022-08-02, 00:23:12  
                    展开↯

                    #163

                    作者:广西南宁市
                    窗口滚动到当前元素才显示animate动画效果
                    /* *窗口滚动到当前元素才显示动画效果 *classname 当前元素的类名 *effect 要添加的动效类名 参照网址:https://www.dowebok.com/demo/2014/98/*注:需事先引用好animate.min.css 下载地址:https://pan.baidu.com/s/1ntFjwAt */ function then_show (classname,effect) { $(window).scroll(function(){ var curr_element = $('.'+classname); var active_class = 'animated '+effect; var scroll_h = $(window).scrollTop()+$(window).height(); var self_top = curr_element.offset().top; var self_h = curr_element.height(); if( (scroll_h > self_top + self_h/2) && ( $(window).scrollTop() < self_top + self_h/2) ){ // 显示动画效果 curr_element.addClass(active_class); }else{ // 退出动画效果(设置后当重新回到可视区可再次显示动效) curr_element.removeClass(active_class); } }) }then_show('invisible','fadeInRightBig');// 调用
                    Run code
                    Cut to clipboard
                      #,广西南宁市,2022-08-01,23:01:12, 全角空格( ),
                      全角空格( ),
                      Run code
                      Cut to clipboard
                        #,广西南宁市,2022-08-01,23:03:03, 安装了office2007兼容包后,还是无法用excel2003打开excel2007的文档,提示:转换器无法打开文件
                        安装了office2007兼容包后,还是无法用excel2003打开excel2007的文档,提示:转换器无法打开文件
                        试试安装office2010兼容包
                        文章:程序员编程常用网页工具集[游戏]  发表时间:2022-08-01, 23:00:43  
                        展开↯

                        #164

                        作者:广西南宁市
                        PhpOffice\PhpSpreadsheet导出excel长数字科学计算问题解决
                        use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Cell\DataType; static function export($filename,$title,$data){ $spreadsheet = new Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); //设置工作表标题名称 $worksheet->setTitle('Sheet1'); foreach ($title as $tk=> $tv){ $worksheet->setCellValueByColumnAndRow($tk+1, 1, $tv); } if($data){ foreach ($data as $k=>$v){ foreach ($v as $kk=>$vv){ //$worksheet->setCellValueByColumnAndRow($kk+1, $k+2, $vv); $worksheet->setCellValueExplicitByColumnAndRow($kk+1,$k+2,$vv,DataType::TYPE_STRING); } } } header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"'); header('Cache-Control: max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); } 主要是 $worksheet->setCellValueExplicitByColumnAndRow($kk+1,$k+2,$vv,DataType::TYPE_STRING); 起到作用 用户编辑点击时变成科学计算 设置单元格格式 选择自定义 设置0 解决问题
                        Run code
                        Cut to clipboard
                          文章:PHP tp6 exce导入导出  发表时间:2022-07-29, 12:13:59  
                          展开↯

                          #165

                          作者:广西南宁市
                          phpspredsheet导出excel,支持长数字

                          工作中比较多地遇到导出excel的需求,我通常是用phpspread完成,然而有时候像导出身份证号,银行卡号,订单号这些比较长而且格式为纯数字的数据时往往会出现变成科学计数法的情况,设置为默认文本格式又会出现末尾数字变成0的情况

                          经过搜索和测试后总算是有了解决办法,我将其封装成了一个函数
                          function CreateExcel($Data, $Header, $Path, $FileName,$LongNumberField=null) { $SpreadSheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $Sheet = $SpreadSheet->getActiveSheet(); if($LongNumberField===null){ array_unshift($Data, $Header); $SpreadSheet->getDefaultStyle()->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER); $Sheet->fromArray($Data); } else{ $HeaderCount=count($Header); for($i=0;$i<$HeaderCount;$i++){ $Sheet->setCellValueByColumnAndRow($i+1,1,$Header[$i]); } $RowIndex=2; $DataCount=count($Data); for($i=0;$i<$DataCount;$i++){ $ColumnIndex=1; foreach ($Data[$i] as $Key=>$Value){ if(in_array($Key,$LongNumberField)){ $Sheet->setCellValueExplicitByColumnAndRow($ColumnIndex,$RowIndex,$Value,\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); } else{ $Sheet->setCellValueByColumnAndRow($ColumnIndex,$RowIndex,$Value); } $ColumnIndex++; } $RowIndex++; } } $Xlsx = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($SpreadSheet); $Xlsx->save($Path . $FileName); }
                          Run code
                          Cut to clipboard


                            示例
                            $Data=[ ['id'=>1,'name'=>'张三','bank_card'=>'123456789123456789'], ['id'=>2,'name'=>'李四','bank_card'=>'123456123456789789'], ]; $Header=['id','姓名','银行卡号']; $Path='D:/www/test/'; $FileName='Export.xlsx'; $LongNumberField=['bank_card']; CreateExcel($Data,$Header,$Path,$FileName,$LongNumberField);
                            Run code
                            Cut to clipboard
                              文章:Thinkphp6 excel导入导出  发表时间:2022-07-29, 11:33:23  
                              展开↯

                              #166

                              作者:广西南宁市
                              setcellvalue 格式_PHPExcel setCellValueByColumnAndRow()转换为日期时间单元格格式
                              Hi can somebody tell me how to set phpexcel cell format to datetime if I have datatime in php variable? I use it this way but it is only string: $list->setCellValueByColumnAndRow( ++$column, $row, $survey->task->closed->format(DateTimeUtils::DATE_FORMAT_NO_SPACES) ); EDIT: Now I have this code: $list->setCellValueByColumnAndRow( ++$column, $row, \PHPExcel_Shared_Date::PHPToExcel( $survey->task->closed ) ) ->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY); but it sets the cell format to number and date seems in result like float number 43098.4755671296 解决方案 It seems the fluent call getStyle() does not work and should be called getStyleByColumnAndRow() instead on excel sheet object. $activeSheet->getStyleByColumnAndRow( $column, $row, $survey)->getNumberFormat()->setFormatCode( \PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY ); I am confused and don't understand what is the difference between getStyle() and getStyleByColumnAndRow(). If somebody knows let me know. EDIT: There is fourth parameter in setCellValueByColumnAndRow() method which determines return value. Fluent getStyle() needs to set it to TRUE.
                              Run code
                              Cut to clipboard
                                文章:Thinkphp6 excel导入导出  发表时间:2022-07-29, 11:32:38  
                                展开↯

                                #167

                                作者:广西南宁市
                                PHPexcel 单元格数据格式 解决 PHPExcel 长数字串显示为科学计数

                                setCellValue 是不支持设置数据格式的 下面是方法可有看处
                                setCellValue($pCoordinate = 'A1', $pValue = null, $returnCell = false)
                                Run code
                                Cut to clipboard


                                  setCellValueExplicit 是可以设置数据格式 同时支持连贯操作
                                  /** * Set a cell value * * @param string $pCoordinate Coordinate of the cell * @param mixed $pValue Value of the cell * @param string $pDataType Explicit data type * @param bool $returnCell Return the worksheet (false, default) or the cell (true) * @return PHPExcel_Worksheet|PHPExcel_Cell Depending on the last parameter being specified */ public function setCellValueExplicit($pCoordinate = 'A1', $pValue = null, $pDataType = PHPExcel_Cell_DataType::TYPE_STRING, $returnCell = false) { // Set value $cell = $this->getCell($pCoordinate)->setValueExplicit($pValue, $pDataType); return ($returnCell) ? $cell : $this; }
                                  Run code
                                  Cut to clipboard


                                    setCellValueExplicit 支持以下数据格式 目前只发现这些
                                    TYPE_STRING TYPE_STRING2 TYPE_NULL TYPE_NUMERIC TYPE_FORMULA TYPE_BOOL TYPE_ERROR
                                    Run code
                                    Cut to clipboard


                                      解决 PHPExcel 长数字串显示为科学计数

                                      在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号。

                                      对于下面这种修改数据类型未字符串 超长数字依然不能正常显示
                                      ->setCellValueExplicit('D1',123456789033,PHPExcel_Cell_DataType::TYPE_STRING);
                                      Run code
                                      Cut to clipboard


                                        百分之百可以解决超长数字的办法 就是在值前面加空格
                                        ->setCellValue('D1', ' ' . 123456789033);
                                        Run code
                                        Cut to clipboard
                                          文章:Thinkphp6 excel导入导出  发表时间:2022-07-29, 11:32:10  
                                          展开↯

                                          #168

                                          作者:广西南宁市
                                          phpexcel 数字格式_php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法...
                                          而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格式。 我导出EXcel的主要代码的前面部分: if(count($data)>40000){ $filename_type='csv'; }else{ $filename_type='xls'; } header("Content-Type: application/vnd.ms-excel"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名 header("Pragma: no-cache"); header("Expires: 0"); if($filename_type=='xls'){ echo ' xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> '; } 后面就是以 的格式输出数据 查了大半天终于查到了一点有用的资料,现在摘抄如下: “首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell 没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。 下面就列出常用的一些格式: 1) 文本:vnd.ms-excel.numberformat:@ 2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd 3) 数字:vnd.ms-excel.numberformat:#,##0.00 4) 货币:vnd.ms-excel.numberformat:¥#,##0.00 5) 百分比:vnd.ms-excel.numberformat: #0.00% 这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添 加到对应的标签对(即闭合标签)即可。如 ,给标签对添加样式,如 下: 410522198402161833 同样,我们也可以给 < /tr>,添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现 呢?经过测试,会以离数据最近的样式呈现. ” 于是按照他说的方法设置了导出数据时对应的身份证列的 的样式: echo " ".$printable."\n";
                                          Run code
                                          Cut to clipboard
                                            文章:Thinkphp6 excel导入导出  发表时间:2022-07-29, 11:30:36  
                                            展开↯

                                            #169

                                            作者:广西南宁市
                                            php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
                                            在网上查了很多资料知道解决办法大概有两个:一是在身份证字段前加个英文单引号,二是设置Excel的格式为文本格式。 我试用过第一种确实可以显示,但是有个“'”号在那里感觉确实不是很好,虽然听说不影响,但是需要用户点击那个单元格那个单引号才消失,并且在该格的左上角中显示绿色的三角形。 客户要求我继续改进。 于是考虑第二种办法,发现网上的资料是有一些,但是都是关于Delphi,asp.net,asp等设置格式的方法。 而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格式。 我导出EXcel的主要代码的前面部分: <? if(count($data)>40000){ $filename_type='csv'; }else{ $filename_type='xls'; } header("Content-Type: application/vnd.ms-excel"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名 header("Pragma: no-cache"); header("Expires: 0"); if($filename_type=='xls'){ echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT"> <meta http-equiv=Content-Type content="text/html; charset=gb2312"> <!--[if gte mso 9]><xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name></x:Name> <x:WorksheetOptions> <x:DisplayGridlines/> </x:WorksheetOptions> </x:ExcelWorksheet> </x:ExcelWorksheets> </x:ExcelWorkbook> </xml><![endif]--> </head>'; } 后面就是以<table><tr><td></td></tr></table>的格式输出数据 查了大半天终于查到了一点有用的资料,现在摘抄如下: “首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本:vnd.ms-excel.numberformat:@ 2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd 3) 数字:vnd.ms-excel.numberformat:#,##0.00 4) 货币:vnd.ms-excel.numberformat:¥#,##0.00 5) 百分比:vnd.ms-excel.numberformat: #0.00% 这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样式,如下: <td style="vnd.ms-excel.numberformat:@">410522198402161833</td> 同样,我们也可以给<div></div>添加样式,也可以给<tr></tr>,<table></table>添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现呢?经过测试,会以离数据最近的样式呈现. ” 于是按照他说的方法设置了导出数据时对应的身份证列的<td>的样式: echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>\n"; 果然成功了,没有枉费了查半天的资料。
                                            Run code
                                            Cut to clipboard
                                              文章:Thinkphp6 excel导入导出  发表时间:2022-07-29, 11:30:09  
                                              展开↯

                                              #170

                                              作者:广西南宁市
                                              HTMLinput 标签的 accept 属性
                                              HTML5 input file类型,accept(文件类型控制)
                                              accept的文件类型

                                              accept表示可以上传文件类型,image表示图片,*表示所有支持的格式。 只支持excel文件类型上传 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" multiple="multiplt"> *表示所有支持的格式 <input type="file" accept="*" multiple="multiplt" /> 支持所有的图像(图片)文件 <input type="file" accept="image/*" multiple="multiplt" /> 上传Pdf <input type="file" accept="application/msword, application/pdf" multiple="multiplt" /> 上传 .zip,.rar <input type="file" accept=".zip,.rar,application/x-rar-compressed,application/zip,application/x-zip-compressed,application/octet-stream" multiple="multiplt"/>
                                              Run code
                                              Cut to clipboard

                                                accept="image/gif, image/jpeg" accept="application/msword" accept="application/pdf" accept="application/poscript" accept="application/rtf" accept="application/x-zip-compressed" accept="audio/basic" accept="audio/x-aiff" accept="audio/x-mpeg"
                                                Run code
                                                Cut to clipboard



                                                  文章:ThinkPHP6 公共 上传到本地  发表时间:2022-07-29, 11:28:38  
                                                  展开↯

                                                  #171

                                                  作者:广西南宁市
                                                  tp5.1 获取原始上传文件名
                                                  打印一下上传的文件对象可以的得出,大致对象结构如下 object(thinkFile)#77 (13) { ["error":"thinkFile":private] =&gt; string(0) "" ["filename":protected] =&gt; string(14) "/tmp/phpkIAvIy" ["saveName":protected] =&gt; NULL ["rule":protected] =&gt; string(4) "date" ["validate":protected] =&gt; array(0) { } ["isTest":protected] =&gt; NULL ["info":protected] =&gt; array(5) { ["name"] =&gt; string(10) "ebrima.ttf" ["type"] =&gt; string(24) "application/octet-stream" ["tmp_name"] =&gt; string(14) "/tmp/phpkIAvIy" ["error"] =&gt; int(0) ["size"] =&gt; int(907232) } ["hash":protected] =&gt; array(0) { } ["pathName":"SplFileInfo":private] =&gt; string(14) "/tmp/phpkIAvIy" ["fileName":"SplFileInfo":private] =&gt; string(9) "phpkIAvIy" ["openMode":"SplFileObject":private] =&gt; string(1) "r" ["delimiter":"SplFileObject":private] =&gt; string(1) "," ["enclosure":"SplFileObject":private] =&gt; string(1) """ } 看这结构,访问权限是protected,如何获取呢? 获取方法: 对象->getInfo() 获取info属性 //对象->getInfo() 获取info属性,['name'] 获取name的值 $file->getInfo()['name']
                                                  Run code
                                                  Cut to clipboard
                                                    文章:ThinkPHP6 公共 上传到本地  发表时间:2022-07-29, 11:25:09  
                                                    展开↯
                                                    你好,残忍屏蔽广告

                                                    确定要清除编辑框内容吗?

                                                    该删除操作将不可恢复。

                                                    删除 取消

                                                    激活Windows

                                                    转到"设置"以激活Windows。