php框架laravel excel包使用教程介绍

 更新时间:2016年11月25日 15:36  点击:1423
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP了,下面我们来看看laravel excel包使用教程

laravel中excel插件的安装

在composer中引入laravel excel的包

    "maatwebsite/excel": "1.*"
在位于laravel/app/config下编辑app.php文件,在providers数组中添加以下值

    'Maatwebsite\Excel\ExcelServiceProvider',
在同文件中找到aliasses数组添加以下值

    'Excel' => 'Maatwebsite\Excel\Facades\Excel',
执行composer install 或 composer update命令.

laravel excel的配置

在位于laravel/vendor/maatwebsite/excel/src/config下一些对于插件的一些配置项

config.php > 对excel和表全局的一些设置
csv.php > 对导入导出csv文件的设置
export.pho > 对打印出文件内容的一些设置
import.php > 对导入excel文件的设置

laravel excel的简单使用

在之前的准备工作都做好了以后我们就可以用excel插件了

导出excel

<?php
$rows = array( array( 'id' => 1, 'name' => 'marlon' ) );

Excel::create($name, function($excel) use ($rows) {
    $excel->sheet('当天报名', function($sheet) use ($rows) {
        $sheet->fromArray($rows);
    });
})->store('xls', storage_path('excel'));

由于在php闭包中无法拿到闭包外的变量,所以需要用use把$rows引入进去,在最后的链式调用的store中所传的参数就是所需excel的格式和要保存到服务器的位置,此为绝对路径.

在这个地方store()方法为存储,相对应的还可以使用download()方法来直接下载,至于export方法笔者还没搞懂用处是什么

导入excel

<?php
Excel::load(Input::file('excel'), function($reader) {
    //获取excel的第几张表
    $reader = $reader->getSheet(0);
    //获取表中的数据
    $results = $reader->toArray();
    //在这里的时候$results 已经是excel中的数据了,可以再这里对他进行操作,入库或者其他....
});

word文档不适合放到网页上了,如果我们要放到网页中去是需要一个个复制了,如果你还在复制就out了,下文小编来为各位整理一篇php实现word转html文档的例子,希望文章对各位有帮助。

要想完美解决,office转pdf或者html,最好还是用windows office软件,libreoffice不能完美转换,wps没有api。

先确认com模块是不是开启,phpinfo里面如果有com_dotnet模块,说明已开启,如果没有,修改php.ini,
com.allow_dcom = true

前面的注释去掉,重启就OK了,php官方网站说,php5.4.5之前,com模块是内置的,其实也不一定全是,官网下的php 5.3.39,com模块就没有内置。

如果不是内置模块的话,php.ini加上,前提你的ext文件夹下,有该扩展

extension=php_com_dotnet.dll

然后重启就OK了


function word2html($wordname,$htmlname) 
 { 
 $word = new COM("word.application") or die("Unable to instanciate Word"); 
 $word->Visible = 1; 
 $word->Documents->Open($wordname); 
 $word->Documents[1]->SaveAs($htmlname,8); 
 $word->Quit(); 
 $word = null; 
 unset($word); 
 } 
 
word2html('D:/www/test/6.docx','D:/www/test/6.html'); 

注意:

1,转换出来的html,查看源码,比较乱的
2,转换过程中会调用winword.exe
3,如果页面一直在加载,把文档重命名,然后在重新转。

补充一个例子


function lego_clean($text) {  
 
    $text = implode("\r",$text);  
 
    // normalize white space  
    $text = eregi_replace("[[:space:]]+", " ", $text);  
    $text = str_replace("> <",">\r\r<",$text);  
    $text = str_replace("<br>","<br>\r",$text);  
 
    // remove everything before <body>  
    $text = strstr($text,"<body");  
 
    // keep tags, strip attributes  
    $text = ereg_replace("<p [^>]*BodyTextIndent[^>]*>([^\n|\n\015|\015\n]*)</p>","<p>\\1</p>",$text);  
    $text = eregi_replace("<p [^>]*margin-left[^>]*>([^\n|\n\015|\015\n]*)</p>","<blockquote>\\1</blockquote>",$text);  
    $text = str_replace(" ","",$text);  
 
    //clean up whatever is left inside <p> and <li>  
    $text = eregi_replace("<p [^>]*>","<p>",$text);  
    $text = eregi_replace("<li [^>]*>","<li>",$text);  
 
    // kill unwanted tags  
    $text = eregi_replace("</?span[^>]*>","",$text);  
    $text = eregi_replace("</?body[^>]*>","",$text);  
    $text = eregi_replace("</?div[^>]*>","",$text);  
    $text = eregi_replace("<\![^>]*>","",$text);  
    $text = eregi_replace("</?[a-z]\:[^>]*>","",$text);  
 
    // kill style and on mouse* tags  
    $text = eregi_replace("([ \f\r\t\n\'\"])style=[^>]+", "\\1", $text);  
    $text = eregi_replace("([ \f\r\t\n\'\"])on[a-z]+=[^>]+", "\\1", $text);  
 
    //remove empty paragraphs  
    $text = str_replace("<p></p>","",$text);  
 
    //remove closing </html>  
    $text = str_replace("</html>","",$text);  
 
    //clean up white space again  
    $text = eregi_replace("[[:space:]]+", " ", $text);  
    $text = str_replace("> <",">\r\r<",$text);  
    $text = str_replace("<br>","<br>\r",$text);  

下文来为各位介绍PHP设置session定期自动清理的例子了,因为session默认是15分钟自动把变量给清除内存了,但有一些时间并不生效了,下面我们就来看看.

配置完成php后,默认php会将session生成到/tmp目录下,导致/tmp目录文件很多,因此需要对session进行定期的清理:

修改php.ini:

[root@hz scripts]# grep "session.save_path = " /usr/local/php/lib/php.ini
;     session.save_path = "N;/path"
;     session.save_path = "N;MODE;/path"
;session.save_path = "/tmp"
session.save_path = "2;/tmp/session"
[root@hz ~]# cat /byrd/script/Cleartmpsen.sh
#!/bin/bash
# Version:1.0
# Author:Byrd
# Site:www.t4x.org
# Contact:root#t4x.org

# This is script will clear php session before 3 hours.
i="0 1 2 3 4 5 6 7 8 9 a b c d e f"
for byrd in $i;
do
    for x in $i;
    do
        mkdir -p /tmp/session/$byrd/$x;
    done;
done
chown -R bywww:bywww /tmp/session
chmod -R 1777 /tmp/session
find /tmp/session -amin +180 -exec rm -rf {} \;
if [ `grep 'session.save_path =' /usr/local/php/lib/php.ini | wc -l` -eq 3 ];then
    sed -i 's#;session.save_path = "/tmp"#;session.save_path = "/tmp"\nsession.save_path = "2;/tmp/session"#g' /usr/local/php/lib/php.ini
else
    exit 1
fi

定时任务:

[root@hz scripts]# echo '#This is a config php session BY:BYRD AT:2014-03-31' >>/var/spool/cron/root
[root@hz scripts]# echo '0 3 * * 0 /bin/bash /byrd/scripts/spehspsion.sh >/dev/null 2>&1' >>/var/spool/cron/root


备注:因为此配置修改了php.ini因此需要重新启动php进程。

301跳转必须由程序或服务器来实现,如果是页面跳转可以使用js或页面html来实现,下面我们先来介绍页面跳转,然后再介绍301跳转了.


一般情况下,此类跳转是302跳转,只是暂时性跳转,如果需要进行永久重写向(SEO上比较有用),可如下实现:

header("HTTP/1.1 301 Moved Permanently");
header("Location: redirect.php");


平时我们使用html做页面的时候,都会碰到定时刷新,可以看到如下标签:

<meta http-equiv="Refresh" content="2;url='refresh.php'">

表示每隔两秒刷新一次页面,实际上是重定向到页面。

由此,PHP根据HTTP协议,可以如下实现:

header( "refresh:2;url=refresh.php" );

1.window.location.href方式
    <script language="javascript" type="text/javascript">
           window.location.href="target.aspx";
    </script>

2.window.navigate方式跳转
   <script language="javascript">
    window.navigate("target.aspx");
</script>

 

3.window.loction.replace方式实现页面跳转,注意跟第一种方式的区别
<script language="javascript">
    window.location.replace("target.aspx");
</script>
有3个jsp页面(1.aspx, 2.aspx, 3.aspx),进系统默认的是1.aspx,当我进入2.aspx的时候, 2.aspx里面用window.location.replace("3.aspx");

与用window.location.href ("3.aspx");

从用户界面来看是没有什么区别的,但是当3.aspx页面有一个"返回"按钮,调用window.history.go(-1); wondow.history.back();方法的时候,一点这个返回按钮就要返回2.aspx页面的话,区别就出来了,当用 window.location.replace("3.aspx");连到3.aspx页面的话,3.aspx页面中的调用 window.history.go(-1);wondow.history.back();方法是不好用的,会返回到1.aspx。

4.self.location方式实现页面跳转,和下面的top.location有小小区别
   <script language="JavaScript">
          self.location='target.aspx';
   </script>

5.top.location
   <script language="javascript">
          top.location='target.aspx';
   </script>

网站有从远程服务器通过http下载文件的需求,于是写了个提供文件下载的脚本,下面我们来看看用PHP如何实现文件下载功能的。

偶尔用用PHP写点这种很小很小的Web程序,还是蛮简单方便的。

PHP实现文件下载功能的代码如下

<?php
$base_dir = "/usr/share/nginx/html/";
$myfile = $base_dir . $_GET["file"];
//echo $myfile;
 
if( ! file_exists($myfile) ) {
echo "file: " . $myfile . " doesn't exist.";
} elseif ( is_dir($myfile) ) {
echo "file: " . $myfile . " is a directory.";
} else {
    header("Content-type: application/octet-stream");
    header('Content-Disposition: attachment; filename="' . basename($myfile) . '"');
    header("Content-Length: ". filesize($myfile));
    readfile($myfile);
}
?>

github: https://github.com/smilejay/other-code/blob/master/php/download.php

另外,一个牛人分析一下使用apache/nginx的一些模块让php实现问下下载更加的高效:

http://www.laruence.com/2012/05/02/2613.html

[!--infotagslink--]

相关文章

  • Laravel4安装配置的方法

    如果我们需要安培Laravel4的话最php最低要求要在php5.3.7版本并且我们需要把mcrypt与openss这两个扩展开启才可以,具体步骤我们参考下文。 前面我们介绍我了 com...2016-11-25
  • Laravel 调试工具 laravel-debugbar 打印日志消息

    laravel-debugbar 调试工具的教程小编整理了几篇不错的教程,今天我们来看一篇Laravel 调试工具 laravel-debugbar 打印日志消息例子,希望文章对各位有帮助。 其实不...2016-11-25
  • Laravel 5.1中定义事件、事件监听器以及触发事件例子

    下文我们来看一篇关于Laravel 5.1中定义事件、事件监听器以及触发事件例子,希望能够帮助到各位新手朋友的哦。 这里我们基于之前基于模型+缓存对文章增删改查这篇...2016-11-25
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • 搭建php Laravel框架教程详解

    Laravel框架我们用到的不多了,但如果使用需要搭配了,下面我们来看一篇关于搭建php Laravel框架教程详解,具体的操作细节如下所示,希望对各位有帮助。 一、安装 Compos...2016-11-25
  • 如何用Laravel包含你自己的帮助函数

    你可能想创建一个在应用的任何地方都可以访问的函数,这个篇文章将带你解决此问题,感兴趣的同学,可以参考下。...2021-05-27
  • Laravel Nginx配置步骤详解

    Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁...2016-11-25
  • PS自由变换工具使用教程 ps自由变换快捷键是什么

    本次为大家带来的是PS自由变换工具使用教程,详细的为大家说明了PS自由变换工具的快捷键、所在位置、功能以及使用方法,下面请看详细的介绍。 快捷键:Ctrl+T 所...2016-12-15
  • Laravel实现autoload方法详解

    本文给大家讲解的是在laravel中是怎么实现autoload的?分析之后才发现,真的是很巧妙,下面就来给大家详细说明下...2017-05-21
  • 详解PHP laravel中多对多关系的代码实例

    数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,本文重点通过实例给大家讲解 laravel中的多对多关系,感兴趣的朋友一起看看吧 数据表之间是纵...2017-07-06
  • php反斜杠处理函数addslashes()和stripslashes()的使用教程

    这篇文章写了php反斜杠处理函数addslashes()和stripslashes()的使用教程,学习过程中遇到问题的同学快来看看吧! php 反斜杠处理函数 addslashes():对输入字符串中的...2016-12-31
  • 美图秀秀美白皮肤功能怎么用 美白皮肤功能使用教程

    今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一说美白皮肤功能的使用教程,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看一看教程吧。 ...2016-09-14
  • 全面解读PHP的人气开发框架Laravel

    Laravel的主要技术特点:1、Bundle是Laravel的扩展包组织形式或称呼。Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中。你可以选择下载一个扩展包(bundle)然后拷贝到bundles目录,或者...2015-10-21
  • php中Composer 安装与使用教程

    Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件,下面我们一起来看com...2016-11-25
  • PHP框架Laravel中实现supervisor执行异步进程的方法

    这篇文章主要给大家介绍了PHP框架Laravel中实现supervisor执行异步进程的方法,文中介绍的非常详细,相信对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-11
  • PHP laravel中的多对多关系实例详解

    数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,本文重点通过实例给大家讲解 laravel中的多对多关系,感兴趣的朋友一起看看吧...2017-06-11
  • 小米手机助手怎么用?小米手机助手使用教程

    小米手机助手怎么用?小米手机目前可是国产手机当中最受欢迎的智能手机了,而小米手机助手也是比较好用的。现在我们就一起来学习一下小米手机助手的使用教程吧。 共...2016-12-15
  • CSS3 transform属性详解 CSS3 transform属性使用教程

    CSS3 transform属性使用教程将为大家全面解析transform属性的作用和使用方法,有兴趣的同学请看下文介绍。 语法: transform:none | matrix(<number>,<number>,<numbe...2017-01-22
  • 图文详解laravel多对多关联模型

    多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题,下面这篇文章主要给大家介绍了关于laravel多对多关联模型的相关资料,需要的朋友可以参考下...2021-08-11
  • laravel Eloquent模型创建、更新及批量赋值详解

    下面我们来看一篇关于laravel Eloquent模型创建、更新及批量赋值详解,希望文章能够让各位清楚的了解Eloquent模型的基本知识的哦。 1、创建模型 1.1 使用save方...2016-09-14