/** * @return string original file base name */ public function getBaseName() { // https://github.com/yiisoft/yii2/issues/11012 return mb_substr(pathinfo('_' . $this->name, PATHINFO_FILENAME), 1, null, '8bit'); } /** * @return string file extension *…
yii2.0默认的访问形式为:dxr.com/index.php?r=index/list,一般我们都会配置成pathinfo的形式来访问:dxr.com/index/list,这样更符合用户习惯. 具体的配置方法为: 一.配置yii2.0. 打开config目录下的web.php,在$config = [ 'components'=>[ 加到这里 ] ]中加入: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName'…
nginx 通过 location 的规则匹配将 php 转发给 php-fpm 处理后获取结果然后返回给客户端,转发模式可以通过 unix sock 或 tcp socket 方式.百度了好多文章我是没遇到一个能完整的而且正确的把 nginx 和 php 结合的配置讲述的较为正确的,这里总结了下最基本的 nginx + php 的模式配置,以及隐藏 index.php 和 开启 pathinfo 模式的方法. 个人觉得是可以复制粘贴配置你的生产环境的,总结了很多好的博文的要点,比如隐藏 ind…
作者:白狼 出处:http://www.manks.top/document/install.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 官方文档给出了两种Yii2的安装方式.一种是通过归档文件安装,另一种则是通过composer进行安装.两种方式具体有什么不同呢?我们这里不讨论,安装完了你自然也就明白了. 相信很多小伙伴想学Yii2,但是大部分都死在了开头.所谓万事开头难,Yii2无疑更好的证实了这一点,还…
在之前自动加载机制的文章中,我们有提到别名,提到 getAlias 方法,大家当时可能不太清楚,这到底是什么,今天我们就来说一下别名. 别名用来表示文件路径和 URL,这样就避免了将一些文件路径.URL以硬编码的方式写入代码中,或者多处出现一长串的文件路径.URL. 在 Yii2 中,一个别名必须以 @ 字符开头,Yii2 预定义了大量可用的别名,预定义的别名如下: @yii 表示Yii框架所在的目录,也是 BaseYii.php 文件所在的位置 @app 表示正在运行的应用的根目录 @vend…
来源:http://www.jb51.net/article/49313.htm 1.在浏览器输出提供下载 /** * 导出数据到CSV文件 * @param array $data 数据 * @param array $title_arr 标题 * @param string $file_name CSV文件名 */ function export_csv(&$data, $title_arr, $file_name = '') { ini_set("max_execution_tim…
如果不清楚什么是CSV文件,可看如下文章介绍  CSV格式的是什么文件?CSV是什么的缩写? /** * 导出数据到CSV文件 * @param array $data 数据 * @param array $title_arr 标题 * @param string $file_name CSV文件名 */ function export_csv(&$data, $title_arr, $file_name = '') { ini_set("max_execution_time"…
composer 用起来是非常方便的 所以我是依赖composer来做的包管理 1.先安装composer 自行百度一下composer安装以及使用 2.用composer下载安装office包即可 3.不多废话 直接上代码 /** * @param $data array 要下载的数据 * @param $title_arr array 表头 * @param $filename string 文件名称 */function export_csv($data,$title_arr,$file_…
source("D:\\apache-jmeter-3.0\\testcase\\java\\Test.java"); //${journeyLen} 以上两句在JMeter脚本里同时出现会报错,即使${}句型被注释也会报错,可改写成String 变量名=vars.get("变量名"); int 变量名2=Integer.parseInt(变量名);的句法形式来避开问题. 可能是JMeter的bug…
netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty reactor线程的真相[源码基于4.1.6.Final] reactor 线程的启动 NioEventLoop的run方法是reactor线程的主体,在第一次添加任务的时候被启动 NioEventL…