fputcsv 导出excel,解决内存、性能、乱码、科学计数法问题

来源:https://blog.51cto.com/12750968/2133076

记录作为后续使用

 

<?php 
ob_end_clean();

// 文件名
$filename = $type.'_order_'.date('YmdHis').'.csv';
$title = ['单号', '状态', '数量', '商品名', '发货人', '收货人'];

// 设置 header 头
header('Content-Type: application/vnd.ms-excel'); // 文件格式
header('Content-Type: charset=utf-8'); // 文件编码
header('Content-Disposition: attachment; filenaeme='. $filename); // 文件名
header('Content-Type: application/octet-stream'); // 二进制流
// header("Accept-Ranges:bytes");// 表明范围单位为字节,可不写
header("Pragma: no-cache"); // 禁止缓存
header("Expires: 0");// 有效期时间

$fp = fopen('php://output','w+');

fputcsv($fp, transCode($title));

// 处理数据 [伪代码]
// 如果从数据库获取数据并处理,可以分批进行查询,也可以使用多个文件进行导出
// $result

$count = 0; //计数器
$limit = 10000; 

while ($row = $result->fetchRow()) {
    $count++;
    if ($count == $limit) {
        ob_flush(); // 刷新 php 缓存
        flush(); // 刷新输出缓存
        $count = 0; // 重置计数器
    }

    // 逐行写入
    fputcsv($fp, transCode($row));
    unset($row);
}

fclose($fp);
// 编码转换
// 代码一般是 utf-8 格式, csv 导出默认也是 utf-8 格式,而 excel 直接打开默认不识别 utf-8 格式,因此,要导出数据都要进行 格式转换
// 每个字段后加上 "t" 可以防止长数字显示为科学计数法 
function transCode(array &$arr){
    foreach ($arr as &$v) {
        $v = "t".iconv('utf-8', 'gb2312//ignore', $v);
    }
}

可能出现问题:
乱码问题:转换编码为 gb2312 或 gbk
特殊字符问题:字段后 加 "t" 或 双引号
数据丢失问题:gb2312 可识别的字符比较少,可以换成 gbk
csv 时间格式筛选: 文本格式的时间无法进行分组筛选,可在 转码的时候进行过滤,如果是时间格式,不转成 文本格式,即 不加 "t"

 

 

 

 

 

nextcloud安卓同步


安卓客户端的同步默认是安装后新增的内容同步,之前的是不同步的。


不过在每个文件夹右下角的加号图标的第二个导入按钮里可以去选择批量上传的内容。


这里要注意,批量只支持文件夹内的文件全选。

 

建议安装F-Droid上的最新版,请设置包括不兼容的版本,可以安装最新版nextcloud安卓客户端.

正式版 https://f-droid.org/zh_Hans/packages/com.nextcloud.client

开发版 https://f-droid.org/zh_Hans/packages/com.nextcloud.android.beta

 

经测试,设置自动上传的文件夹,有新增图片,会进行即时识别秒传上服务器.

 

关于F-Droid

 

F-Droid 是一个 Android 平台上 FOSS(Free and Open Source Software,自由开源软件)应用程序的目录,并提供下载安装支持。使用客户端可以更轻松地浏览、安装及跟进您设备上的应用更新。

 

官网:https://f-droid.org/

如何实现通过ssh命令行来访问Windows 7

 

安装Cygwin,在安装过程中选择以下软件安装包;

wget

make

yasm

lynx

openssh

libopenssl

 

配置环境变量

右击我的电脑 , 属性> 高级> 环境变量
在系统变量下 点击新建, 添加变量名 CYGWIN , 变量值 ntsec
在系统变量下, 编辑Path, 添加 ;c:\cygwin\bin

 

然后在Cygwin里配置OpenSSH

管理员权限打开Cygwin

输入命令ssh-host-config  脚本生成一些默认文件

然后同意开启对应的功能

将sshd作为服务来运行

要求你为这个守护进程输入一个值 ntsec

输入命令net start sshd 重新启动sshd服务

输入命令ssh-user-config

启用SSH2

创建SSH2 DSA ID文件,如果你不想用密码来访问的话。这一步我输入的是“no”。

测试结果

ssh -v localhost

为什么称鼻中隔前下方为“易出血区”

由于鼻中隔前下方的黏膜内动、静脉血管汇聚成丛,容易因外伤、挖鼻、干燥等原因而引起出血,故临床上称该部位为“易出血区”。

 

秋天风大、空气湿度小,鼻腔黏膜会变得干燥、脆弱,另外秋季气温多变,早、晚和中午的温差较大,鼻内毛细血管为了适应外界气温骤冷骤热的变化,会出现一时扩张,一时收缩的状态,毛细血管很容易受伤出血。

 

孩子为啥容易流鼻血?

 

医生解释,鼻出血在儿童中较为较常见,因儿童鼻前部的利特尔区毛细血管特别丰富,而鼻黏膜又较脆弱。

当孩子发生鼻炎-鼻窦炎、鼻外伤、鼻腔异物、鼻中隔偏曲、鼻腔良性肿瘤、血液系统疾病(血友病、白血病、过敏性紫癜)、风湿热、维生素C/K缺乏等局部或全身原因时,即可诱发鼻出血。

 

 

 

 


 

鼻出血后正确的方法应该是用消毒棉球或无菌纱布堵一堵,然后用手指捏住鼻翼,朝中间、向上用力,一般按出血部位10分钟左右即可止血。如果出血量较大,还采用凉水拍击颈部。如果这样依旧出血不止的话,就应该到医院就诊,让医生找出明确的出血点,帮助止血。

家庭医生提醒大家,秋天容易结鼻痂,最好不要不要用手指挖鼻子,以免损伤鼻黏膜的血管,使其破裂出血,甚至引起炎症。

 

预防鼻出血

儿童鼻出血其发病年龄多在2岁-10岁,青春期后逐渐减少,平时在生活中应注意预防为主。

孩子鼻出血不可大意,必须到专科医院明确病因,以防延误治疗。

 

内网穿透工具FRP使用及配置

win7中frpc客户端加入开机启动

下载winsw进行配置https://github.com/kohsuke/winsw/releases

winsw.xml

<service>
<id>frp</id>
<name>frp本地运行</name>
<description>FRP本地运行配置文件</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>

 

启动.bat

@echo off

cd c:/frpc
winsw install
winsw start

停用.bat

@echo off

cd c:/frpc
winsw stop
winsw uninstall

 

说明:

我的frp客户端是放在C盘下的frpc文件夹中

配置文件位置C:frpcfrpc.ini

启动.bat,停用.bat,winsw.xml和winsw.exe同样放在frpc文件夹中

配置好后,只需点击一次启动.bat即可实现开机自动启动frp客户端.

停用.bat是停用frp客户端时使用的,在修改配置重新启动时可以先停用再启用即可.

 

 

 

 

 

复制frp服务端systemd/frps.service文件到/etc/systemd/system/frps.service

frps.service文件参考内容

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/frps/frps -c /frps/frps.ini

[Install]
WantedBy=multi-user.target

 

说明:

我的frp服务端是放在服务器根下的frps文件夹中

服务端配置文件在/frps/frps.ini

上面的代码中的路径请参考对应设置成自己的.

 

 

 

 

centos7.6中服务端加入开机启动

systemctl enable frps.service

停止服务

systemctl stop frps.service

启动服务

systemctl start frps.service

查询状态

systemctl status frps.service

 

 

在nginx配置80端口共用

说明:

frps.ini中http端口为8080

vhost_http_port = 8080

 

http
{

resolver 1.1.1.1;#添加这一行,避免出现502错误

resolver_timeout 5s;

 

找到配置块

server
{

 

}

下面添加以下代码

 


server
{
listen 80;
server_name *.domain.com;
location / {
proxy_pass http://$host:8080;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://$host:8080;#添加这一行
expires 30d;
}

location ~ .*.(js|css)?$
{
proxy_pass http://$host:8080;#添加这一行
expires 12h;
} 
location ~ /.
{
deny all;
}
}


 

 

 

 

汉语拼音—韦氏拼音对照表

  汉语拼音—韦氏拼音对照表 
  Pinyin to Wade-Giles Conversion Table 
   a -- a
  ai -- ai
  an -- an
  ang -- ang
  ao -- ao
  ba -- pa
  bai -- pai
  ban -- pan
  bang -- pang
  bao -- pao
  bei -- pei
  ben -- pen
  beng -- peng
  bi -- pi
  bian -- pien
  biao -- piao
  bie -- pieh
  bin -- pin
  bing -- ping
  bo -- po
  bu -- pu
  ca -- ts'a
  cai -- ts'ai
  can -- ts'an
  cang -- ts'ang
  cao -- ts'ao
  ce -- ts'e
  cen -- ts'en
  ceng -- ts'eng
  cha -- ch'a
  chai -- ch'ai
  chan -- ch'an
  chang -- ch'ang
  chao -- ch'ao
  che -- ch'e
  chen -- ch'en
  cheng -- ch'eng
  chi -- ch'ih
  chong -- ch'ung
  chou -- ch'ou
  chu -- ch'u
  chuai -- ch'uai
  chuan -- ch'uan
  chuang -- ch'uang
  chui -- ch'ui
  chun -- ch'un
  chuo -- ch'o
  ci -- tz'u
  cong -- ts'ung
  cou -- ts'ou
  cu -- ts'u
  cuan -- ts'uan
  cui -- ts'ui
  cun -- ts'un
  cuo -- ts'o
  da -- ta
  dai -- tai
  dan -- tan
  dang -- tang
  dao -- tao
  de -- te
  deng -- teng
  di -- ti
  dian -- tien
  diao -- tiao
  die -- tieh
  ding -- ting
  diu -- tiu
  dong -- tung
  dou -- tou
  du -- tu
  duan -- tuan
  dui -- tui
  dun -- tun
  duo -- to
  e -- o
  en -- en
  er -- erh
  fa -- fa
  fan -- fan
  fang -- fang
  fei -- fei
  fen -- fen
  feng -- feng
  fo -- fo
  fou -- fou
  fu -- fu
  ga -- ka
  gai -- kai
  gan -- kan
  gang -- kang
  gao -- kao
  ge -- ko
  gen -- ken
  geng -- keng
  gong -- kung
  gou -- kou
  gu -- ku
  gua -- kua
  guai -- kuai
  guan -- kuan
  guang -- kuang
  gui -- kuei
  gun -- kun
  guo -- kuo
  ha -- ha
  hai -- hai
  han -- han
  hang -- hang
  hao -- hao
  he -- ho
  hei -- hei
  hen -- hen
  heng -- heng
  hong -- hung
  hou -- hou
  hu -- hu
  hua -- hua
  huai -- huai
  huan -- huan
  huang -- huang
  hui -- hui
  hun -- hun
  huo -- huo
  ji -- chi
  jia -- chia
  jian -- chien
  jiang -- chiang
  jiao -- chiao
  jie -- chieh
  jin -- chin
  jing -- ching
  jiong -- chiung
  jiu -- chiu
  ju -- chü
  juan -- chüan
  jue -- chüeh
  jun -- chün
  ka -- k'a
  kai -- k'ai
  kan -- k'an
  kang -- k'ang
  kao -- k'ao
  ke -- k'o
  ken -- k'en
  keng -- k'eng
  kong -- k'ung
  kou -- k'ou
  ku -- k'u
  kua -- k'ua
  kuai -- k'uai
  kuan -- k'uan
  kuang -- k'uang
  kui -- k'uei
  kun -- k'un
  kuo -- k'uo
  lü -- lü
  la -- la
  lai -- lai
  lan -- lan
  lang -- lang
  lao -- lao
  le -- le
  lei -- lei
  leng -- leng
  li -- li
  lian -- lien
  liang -- liang
  liao -- liao
  lie -- lieh
  lin -- lin
  ling -- ling
  liu -- liu
  long -- lung
  lou -- lou
  lu -- lu
  luan -- luan
  luan -- lüan
  lue -- lüeh
  lun -- lun
  luo -- lo
  ma -- ma
  mai -- mai
  man -- man
  mang -- mang
  mao -- mao
  mei -- mei
  men -- men
  meng -- meng
  mi -- mi
  mian -- mien
  miao -- miao
  mie -- mieh
  min -- min
  ming -- ming
  miu -- miu
  mo -- mo
  mou -- mou
  mu -- mu
  nü -- nü
  na -- na
  nai -- nai
  nan -- nan
  nang -- nang
  nao -- nao
  nei -- nei
  nen -- nen
  neng -- neng
  ni -- ni
  nian -- nien
  niang -- niang
  niao -- niao
  nie -- nieh
  nin -- nin
  ning -- ning
  niu -- niu
  nong -- nung
  nou -- nou
  nu -- nu
  nuan -- nuan
  nue -- nüeh
  nuo -- no
  ou -- ou
  pa -- p'a
  pai -- p'ai
  pan -- p'an
  pang -- p'ang
  pao -- p'ao
  pei -- p'ei
  pen -- p'en
  peng -- p'eng
  pi -- p'i
  pian -- p'ien
  piao -- p'iao
  pie -- p'ieh
  pin -- p'in
  ping -- p'ing
  po -- p'o
  pou -- p'ou
  pu -- p'u
  qi -- ch'i
  qia -- ch'ia
  qian -- ch'ien
  qiang -- ch'iang
  qiao -- ch'iao
  qie -- ch'ieh
  qin -- ch'in
  qing -- ch'ing
  qiong -- ch'iung
  qiu -- ch'iu
  qu -- ch'ü
  quan -- ch'üan
  que -- ch'üeh
  qun -- ch'ün
  ran -- jan
  rang -- jang
  rao -- jao
  re -- je
  ren -- jen
  reng -- jeng
  ri -- jih
  rong -- jung
  rou -- jou
  ru -- ju
  ruan -- juan
  rui -- jui
  run -- jun
  ruo -- jo
  sa -- sa
  sai -- sai
  san -- san
  sang -- sang
  sao -- sao
  se -- se
  sen -- sen
  seng -- seng
  sha -- sha
  shai -- shai
  shan -- shan
  shang -- shang
  shao -- shao
  she -- she
  shen -- shen
  sheng -- sheng
  shi -- shih
  shou -- shou
  shu -- shu
  shua -- shua
  shuai -- shuai
  shuan -- shuan
  shuang -- shuang
  shui -- shui
  shun -- shun
  shuo -- shuo
  si -- ssu
  song -- sung
  sou -- sou
  su -- su
  suan -- suan
  sui -- sui
  sun -- sun
  suo -- so
  ta -- t'a
  tai -- t'ai
  tan -- t'an
  tang -- t'ang
  tao -- t'ao
  te -- t'e
  teng -- t'eng
  ti -- t'i
  tian -- t'ien
  tiao -- t'iao
  tie -- t'ieh
  ting -- t'ing
  tong -- t'ung
  tou -- t'ou
  tu -- t'u
  tuan -- t'uan
  tui -- t'ui
  tun -- t'un
  tuo -- t'o
  wa -- wa
  wai -- wai
  wan -- wan
  wang -- wang
  wei -- wei
  wen -- wen
  weng -- weng
  wo -- wo
  wu -- wu
  xi -- hsi
  xia -- hsia
  xian -- hsien
  xiang -- hsiang
  xiao -- hsiao
  xie -- hsieh
  xin -- hsin
  xing -- hsing
  xiong -- hsiung
  xiu -- hsiu
  xu -- hsü
  xuan -- hsüan
  xue -- hsüeh
  xun -- hsün
  ya -- ya
  yai -- yai
  yan -- yen
  yang -- yang
  yao -- yao
  ye -- yeh
  yi -- i
  yin -- yin
  ying -- ying
  yo -- yo
  yong -- yung
  you -- yu
  yu -- yü
  yuan -- yüan
  yue -- yüeh
  yun -- yün
  za -- tsa
  zai -- tsai
  zan -- tsan
  zang -- tsang
  zao -- tsao
  ze -- tse
  zei -- tsei
  zen -- tsen
  zeng -- tseng
  zha -- cha
  zhai -- chai
  zhan -- chan
  zhang -- chang
  zhao -- chao
  zhe -- che
  zhen -- chen
  zheng -- cheng
  zhi -- chih
  zhong -- chung
  zhou -- chou
  zhu -- chu
  zhua -- chua
  zhuai -- chuai
  zhuan -- chuan
  zhuang -- chuang
  zhui -- chui
  zhun -- chun

swiper常用配置

 

 

<script>        
  var mySwiper = new Swiper ('.swiper-container', {
                    autoplay: {
                        delay:5000,//秒            
                        disableOnInteraction: false,//滑动不会失效
                        reverseDirection: false,//如果最后一个 反向播放
                    },
                    loop: true,//轮播
                    followFinger: false,//手指滑动完毕在动
    // 如果需要分页器
      pagination: {
        el: '.swiper-pagination',
        clickable: true,
        renderBullet: function (index, className) {
          return '<span class="' + className + '">' + (index + 1) + '</span>';
        },
      },
    
    // 如果需要前进后退按钮
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    
  });
    mySwiper.el.onmouseover = function(){ //鼠标放上暂停轮播
      mySwiper.autoplay.stop();
    }
    mySwiper.el.onmouseleave = function(){
      mySwiper.autoplay.start();
    }
  </script>

 

 

 

 

 

什么是企业文化

企业文化:企业成员共同的价值观念和行为规范。

分为:理念识别系统、行为识别系统、视觉识别系统三个组成部分。

理念识别系统(MI):企业使命、愿景、经营宗旨、经营哲学、经营战略、经营方针、行为准则、企业价值观。

行为识别系统(BI):内部组织、管理、教育培训、福利制度、行为规范、工作环境、开发研究等;外部的市场营销、产品开发、公共关系、公益活动等。

视觉识别系统(VI):基本要素系统:如企业名称、企业标志、企业造型、标准字、标准色、象征图案、宣传口号等。

PHP版获取访客IP函数

PHP版获取访客IP函数

 



function ip() {
    //strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。
    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $ip = getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    $res =  preg_match ( '/[d.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
    return $res;
    //dump(phpinfo());//所有PHP配置信息
}

 

 

 

 

Data URI scheme支持的类型

 

 

 

data:, 文本数据
data:text/plain, 文本数据
data:text/html, HTML代码
data:text/html;base64, base64编码的HTML代码
data:text/css, CSS代码
data:text/css;base64, base64编码的CSS代码
data:text/javascript, Javascript代码
data:text/javascript;base64, base64编码的Javascript代码
data:image/gif;base64, base64编码的gif图片数据
data:image/png;base64, base64编码的png图片数据
data:image/jpeg;base64, base64编码的jpeg图片数据
data:image/x-icon;base64, base64编码的icon图片数据