PHP导出csv,身份证出现科学计数法的问题

 更新时间:2016年11月25日 17:37  点击:1875
朋友的一个网站导出会员信息时,导出的csv文件中的身份证号码显示为科学计数法,最后几位直接显示为0,解决的办法其实很简单

其实这个问题跟用什么语言导出csv文件没有关系。Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0。

$idcard = “\t”.$idcard;

顺便看到如果是phpexcel导出的话,把”\t”换成” “即可(双引号直接有个空格)

使用是公司同事以前的电脑了它用的是php2.17了,小编觉得它旧了于时升级到了php5.4了,结果发现运行ecshop中现Redefining already defined constructor for class 错误了,那么这个问题如何处理?我们一起来看看吧。

本地PHP环境PHP5.4,安装ecshop2.7.3后,很多地方会报如下的错

Redefining already defined constructor for class XXX

检查代码可以发现,对应的位置是某个类的构造函数,具体写法如下:


/**
     * 构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function alipay()
    {
    }

    function __construct()
    {
        $this->alipay();
    }

其中使用和类名相同点函数名作为构造函数是php4时代的写法,php5时代的构造函数是 __construct(),ecshop为了兼容老版本的php,所以采用了上面的写法。

但是从php5.4开始,对于这样的两种写法同时出现的情况,要求必须__construct()在前,同名函数在后,所以只需要对调两个函数的位置即可。

以前我们是使用php生成下载文件时使用中文乱码了这个问题不会影响到文件的打开使用了,但小编今天 碰到下载文件打开乱码与文件损坏问题了,那么此问题要如何来处理 ?具体操作步骤如下

最近更新一个项目,下载部分沿用了之前一个项目的下载代码,可是这次出现了一个小问题,下载的word等文件就提示乱码,下载rar等文件则直接提示文件已经损坏,找了许久也没最终确定原因。胡乱解决后莫名其妙的解决了问题,记录一下,原因待补充。

$extend = explode('.', $file_info->path);
         $ext = array_pop($extend);
         $file_name = $file_info->file_name .'.'.$ext;

            $file = fopen($file_info->path,"r");
            Header("Content-type: application/octet-stream");
            Header("Accept-Ranges: bytes");
            Header("Accept-Length: ".filesize($file_info->path));
            Header("Content-Disposition: attachment; filename=".$file_name);

            ob_clean(); ## 这里是新增的代码
        flush(); ## 这里是新增的代码
            echo fread($file, filesize($file_info->path));
            fclose($file);

注意:下载文件名如果为中文会乱码我们可以把它转成utf8或拼音即可解决

phpmyadmin无法登陆无响应一般是session或cookie设置问题了,下文小编也是因为cookie与 session目录设置问题导致phpmyadmin不能正常登录了。

之前由于修改php.ini配置session路径问题,导致PHPmyadmin无法登陆,点击登录后自动刷新跳到index页面。检查头信息发现报错:

Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly。

可以看出来是session问题,解决办法:

1.打开php.ini修改session.save-path,例如/tmp

2.设置/tmp目录权限>755

3.重启Apache:sudo /etc/init.d/apache2 restart

如果我们配置不对可能导致大文件无法上传了,像nginx配置不当会导致nginx 502 bad 504 time-out问题了,下面我们一起来看问题的解决办法

公共的环境前段


<form enctype="multipart/form-data" action="upload.php" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

nginx+linux环境注意事项


php环境上传大文件需要注意的事项:

/usr/local/php/etc/php-fpm.conf.default
request_terminate_timeout = 0   //这个是fastcgi的执行时间,默认不限制的
client_max_body_size 256m;

fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
   
fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_read_timeout 3000;

另外PHP也需要配置:

memory_limit 512M
max_execution_time 0
post_max_size 256M
upload_max_filesize 256M


apache+windows环境下注意事项

配置php.ini文件 (以上传500M以下大小的文件为例)
查找以下选项并修改->
file_uploads = On ;打开文件上传选项
upload_max_filesize = 500M ;上传文件上限


如果要上传比较大的文件,仅仅以上两条还不够,必须把服务器缓存上限调大,把脚本最大执行时间变长
post_max_size = 500M ;post上限
max_execution_time = 1800 ; Maximum execution time of each script, in seconds脚本最大执行时间
max_input_time = 1800 ; Maximum amount of time each script may spend parsing request data
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)内存上限

[!--infotagslink--]

相关文章

  • php身份证校验码的计算例子

    下面来给各位同学介绍一个php身份证校验码的计算例子,希望本函数代码能帮助到各位同学哦。 例子 代码如下 复制代码 public function id_ver...2016-11-25
  • phpexcel导出数据身份证后四位0000解决办法

    在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
  • mysql 导出CSV文件 并带表头的方法

    下面小编就为大家带来一篇mysql 导出CSV文件 并带表头的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-04-26
  • C#实现验证身份证是否合法的方法

    这篇文章主要介绍了C#实现验证身份证是否合法的方法,实例分析了通过自定义函数实现针对身份证合法性验证的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • js验证身份证号有效性并提示对应信息

    直接上代码,逐行对代码进行研究,一定会有所收获。function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); r...2015-10-21
  • DIV浮动IE文本出现3px间距的bug

    发生场合:当左边对象是浮动的,右边对象采用外补丁的左边距来定位,则右边对象内的文本会离左边有3px的空白误差。 没加修正: 运行代码框 代码如下 复制代...2017-07-06
  • 为什么出现“APACHE.EXE: cannot determine 

    由于Windows版本的Apache默认情况下不指定ServerName,所以运行时会出错。 解决的办法是修改Apache安装目录下的conf目录下的httpd.conf: - 搜索ServerName - 去掉前面...2016-11-25
  • 基于C#技术实现身份证识别功能

    这篇文章主要介绍了基于C#技术实现身份证识别功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • CentOS 64 编译PHP出现 error: Cannot find ldap libraries in /usr/lib

    CentOS 64 编译PHP出现 error: Cannot find ldap libraries in /usr/lib 有需要的朋友可参考参考。 在CentOS 64位下编译安装PHP5.4.8。cp -frp /usr/lib64/libpn...2016-11-25
  • C#身份证号码验证是否正确

    这一篇关于C#语言验证18位身份证号码的验证方法和实例代码,感兴趣的朋友可以参考一下...2020-06-25
  • PHP身份证校验码计算方法

    本文给大家分享尝试使用php语言实现身份证校验码以此来判断用户的身份证号码是否正确...2016-08-27
  • 页面出现网页已过期怎么办法

    在通过IE的后退按钮或者网页中的history.go(-1)时,我们看到的将是缓存页,但使用了session_start后,这个函数会强制当前页面不被缓存,导致出现“警告: 网页已经过期”。...2016-11-25
  • php导出csv或xls文件程序

    由于工作需要今天我们要把mysql数据库里面的数据导出到execel里面用,后来在网上找了一下原来这么简单,因csv文件只要以"," 分开就OK了,下面我们就来看看实例吧. <?php...2016-11-25
  • PHP计算身份证校验码示例

    身份证号码中的校验码是身份证号码的最后一位,是根据中华人民共和国国家标准GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,我们下面来看利用PH...2016-11-25
  • C#验证身份证的函数

    因做项目需要,参考网上资料写了一个身份证验证的C#方法,本方法是在VS2005[C/S] 下写的。前面2个是网友们的实现方法,第三个才是项目中使用的哦,小伙伴们参考下吧。...2020-06-25
  • 网页设计应该注意出现的错误

    Be aware of these common pitfalls when designing your site: 网站设计中,避免出现以下错误: * The home page does not quickly tell you what the Web site is all...2017-07-06
  • SqlServer2000+ 身份证合法校验函数的示例代码

    这篇文章主要介绍了SqlServer2000+ 身份证合法校验函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • php身份证验证相关类

    本程序可以根据身份证信息来获取星座,生肖,性别,年龄等等一些相关的信息了,转的一个实例大家可参考。 代码如下 复制代码 <?php class Idca...2016-11-25
  • C#身份证识别相关技术功能详解

    这篇文章主要介绍了C#身份证识别相关技术详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • PHP 验证身份证是否合法的函数

    本文主要介绍了PHP验证身份证是否合法的函数。具有很好的参考价值,下面跟着小编一起来看下吧...2017-02-18