前言 最近玩cms需要fileinfo扩展,于是乎开始了折腾 鉴于配置比较麻烦,这里给出了一份脚本 查看已安装php版本 cd /vhs/ext/ ls Shell 复制 里面有对应的php版本,可根据脚本思路进行修改安装 master/php/7.1/7113/completed/tpl_php7113.sh -O tpl_php7113.sh;sh tpl_php7113.sh Shell 复制 PHP7.1.13 fileinfo 扩展脚本 wget https://github.com/moehu/shell/raw/master/php7.1.13-fileinfo.sh;sh php7.1.13-fileinfo.sh Shell 目录 cd /root/php-7.1.13/ext/fileinfo #执行phpize生成.configure文件 /vhs/kangle/ext/tpl_php7113/bin/phpize #配置文件 /configure -with-php-config=/vhs/kangle/ext/tpl_php7113/bin/php-config --enable-fileinfo #编译安装 make &
前言 近期在折腾网站的时候,有个程序需要用到fileinfo扩展,于是进入php7.2管理-->安装扩展-->选择fileinfo扩展-->安装,然后无效果,看了下说明:若可用内存小于1G,可能会安装不上 解决方法 首先来看下fileinfo的作用: fileinfo的函数通过在文件的给定位置查找特定的魔术字节序列 来猜测文件的内容类型以及编码(即获取文件的MIME信息) 宝塔面板中有安装相关php扩展的选项 ,首先我们打开宝塔面板,找到你需要安装fileinfo的PHP版本,打开“配置”,以PHP7.3为例,会跳出如下界面 选择“安装扩展”->找到fileinfo,选择“安装”。 ,安装fileinfo即可。 宝塔面板中还有其他扩展可以安装,大家可以根据自己需求进行操作,实在有问题,可以度娘查下,你一定能找到解决办法的。
学习PHP中Fileinfo扩展的使用 今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢? Fileinfo 这个扩展也是为了兼容新老开发模式,所以提供了面向过程和面向对象的两种形式,我们先来看看面向对象的形式如何使用。 快速返回 mime 当然,Fileinfo 扩展也为我们提供了一个快速地返回文件 mime 信息的函数。 而通过 Fileinfo 扩展获得必须是本地或远程已经存在的文件,也就是说不会有上传过程中因为修改传输信息而产生的安全检查绕过问题。 测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/5.学习PHP中Fileinfo扩展的使用.php
这节讲两个实例类,FileInfo和DirectoryInfo两个类,用于操作某个具体的文件或者目录。 FileInfo: FileInfo不同于File,它是一个实例类,有一个string类型的构造方法,用于接收文件路径或者url形式的路径: FileInfo fi=new FileInfo(@". /demo.txt"); 实例化后的对象,就有关于这个文件的信息,比如文件名,扩展名等等。 /创建时间 Console.WriteLine(fi.CreationTimeUtc);//创建时间(UTC时间) Console.WriteLine(fi.Extension);//扩展名 ,当需要多次使用的话,就可以使用FileInfo,DirectoryInfo。
在安装intervention/image图像处理扩展 报错fileinfo is missing 报错信息如下: \blog>composer require intervention/image Using Problem 1 – intervention/image 2.3.7 requires ext-fileinfo * -> the requested PHP extension fileinfo – intervention/image 2.3.6 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing – intervention/image 2.3.5 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing 出现此错误的原因是php.ini中的fileinfo扩展没有开启 开启 extension=php_fileinfo.dll 再重新安装就可以了’ 发布者:全栈程序员栈长,转载请注明出处:https:
有网友说自己的 lnmp 环境中网页无法打开,提示:PHP Fileinfo extension must be installed,这意思是说需要额外安装一下 fileinfo 扩展组件。 搜索了一下也不是很麻烦,魏艾斯博客把这次 LNMP 环境安装 Fileinfo 扩展的过程记录下来,以后遇到类似问题就知道怎么办了。 有的 php 程序是需要扩展支持才能正常运行的,比如需要 Fileinfo 扩展,而 php 一键环境有很多种,今天说的是 lnmp1.4 一键环境包。 执行解压缩命令如下: tar -jxvf php-7.0.21.tar.bz2 2、进入对应的 php-7.0.21 目录,命令如下: cd /root/lnmp1.4/src/php-7.0.21/ext/fileinfo 6、重启 php-fpm /etc/init.d/php-fpm restart 7、验证是否安装成功,查看 php 扩展命令: php -m 看到如下所示说明 fileinfo 扩展安装成功了。
2018-02-0411:44:40 发表评论 38℃热度 fileinfo安装 php.ini 中添加配置 相关服务重启 检查是否成功安装 目录 lnmp1.4版本默认没有安装 fileinfo 模块(测试版本的 lnmp1.5版本已经加入了PHP 的 fileinfo 模块开启选项),当某些程序需要用到的时候,需要手动编译安装 fileinfo 模块,并在 php.ini 中添加一行信息,然后在对应网站的 fileinfo安装 登录服务器后,可以执行以下命令查看 PHP 已经安装的模块: /usr/local/php/bin/php -m 如果没有找到 fileinfo 则表示还没有安装,则进入下面步骤安装 压缩包,执行4进入对应 PHP 版本的 fileinfo 目录,执行5生成编译文件,执行6、7进行编译安装: cd root/lnmp1.4/src/ php -v tar xjf php-7.0.21 .tar.bz2 cd php-7.0.21/ext/fileinfo/ /usr/local/php/bin/phpize .
字符串扩展 str.includes(str):判断是否包含指定字符串,返回true\false str.startWidth(str):判断是否以指定字符开头 str.endWidth(str):判断是否以指定字符结尾 str.repeat(count):重复指定次数 数值扩展 Number.isFinite(i) :判断是否有无限大的数 Number.isNaN(i):判断是否NaN Number.isInteger (i):判断是否为整数 Number.parseInt(str):将字符串转换整数 Math.trunc(i):直接去除小数部分 数组扩展 Array.from(v):将伪数组对象或可遍历对象转换为真数组 return true})找出第一个满足条件返回true的元素 arr.findIndex(function(value,index,arr){return true})找出满足条件返回true元素小标 对象扩展
最近在折腾一款论坛程序,需要fileinfo组件,而lnmp1.3默认没有支持。 其实很简单,只要修改 include/upgrade_php.sh 这个文件 把其中的:--disable-fileinfo 全部替换:--enable-fileinfo 再执行 .
of=/swap bs=1024 count=1M mkswap /swap swapon /swap echo "/swap swap swap sw 0 0" >> /etc/fstab 2、进入fileinfo 扩展文件目录(重点注意,一定要先进入这个fileinfo目录,再执行下面的操作) cd /home/linux_software/php-v/ext/fileinfo/ #进入fileinfo扩展文件目录 3、执行安装fileinfo扩展命令(依次执行下面命令) 注:找到你的phpize所在的位置,用whereis php命令可以查看php目录,然后直接在bin后面加上phpize即可,一般都是和我一样 扩展(注:如果想查看扩展存储的位置:我的在/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012) vim /etc/php.ini extension 1G以下小内存(512M或更小)使用swap方法安装fileinfo扩展 然后php版本哪里重新加载配置就行了。
); // 6、删除文件 fileInfo.Delete(); } #region 获取文件信息 Console.WriteLine("获取文件是否存在:" + fileInfo.Exists ); // False Console.WriteLine("获取文件的扩展名:" + fileInfo.Extension); // .txt Console.WriteLine("获取文件的创建时间 directoryInfo.Delete(); // 5、指定是否删除子目录和文件 directoryInfo.Delete(true); if(isDirectoryInfoExist) { // 6、 Console.WriteLine("获取目录或文件的完整路径:" + directoryInfo.FullName); // d:\test Console.WriteLine("获取文件的扩展名 59:31 Console.WriteLine("获取或设置当前文件或目录的UTC创建时间:" + directoryInfo.CreationTimeUtc); // 2021/12/31 6:
延展运算符:var args = ['url', 123, 'st']; get_names(...args); new.target: 使用new创建一个对象时,会被赋值为新对象的构造器 ES6允许在代码块中定义函数
一、新增 flags 属性 ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符。 // ES5 的 source 属性 // 返回正则表达式的正文 /abc/ig.source // "abc" // ES6 的 flags 属性 // 返回正则表达式的修饰符 /abc/ig.flags /xyz/, 'i'); // Uncaught TypeError: Cannot supply flags when constructing one RegExp from another ES6 加了u修饰符以后,ES6 将其识别其为一个字符,所以第一行代码结果为false。 关于点字符 点(.)字符在正则表达式中表示除了换行符以外的任意单个字符。 $/u.test(a)); // true 2、y 修饰符 ES6 为正则表达式新增了y修饰符 → “粘连”(sticky)修饰符。
第6章 扩展函数与属性 在使用Java的时候,我们经常使用诸如StringUtil, DateUtil等等一堆工具类,代码写起来也比较冗长。举个例子,获取一个字符串的第一个字符值、最后一个字符值。 void main(String[] args) { List<Integer> list = Arrays.asList(new Integer[] {1, 2, 3, 4, 5, 6, 给List扩展的filter函数签名 然后,我们在代码中只需要这样调用即可 val list = mutableListOf(1, 2, 3, 4, 5, 6, 7) val result 扩展属性的语法 然后,我们就可以在代码中直接使用扩展的属性了 val list = mutableListOf(1, 2, 3, 4, 5, 6, 7) println("list = // 调用 setter 函数 list.lastElement = -7 println("list = ${list}") // list = [-1, 2, 3, 4, 5, 6,
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字符串的扩展: Unicode和UTF-16是什么和他们的关系 用for-of console.log('1'); } if(str.includes('PD')) { console.log('2'); } } for-of遍历字符串 let str = 'abc'; // es6 file 正则扩展: const regexp1 = /^a/g; const regexp2 = new RegExp('^a', 'g'); const regexp3 = new RegExp
// 报错 function f(a, ...b, c) { // ... } 严格模式 ES2016 做了一点修改,规定只要函数参数使用了默认值、解构赋值、或者扩展运算符,那么函数内部就不能显式设定为严格模式 function foo() {} foo.name // "foo" 这个属性早就被浏览器广泛支持,但是直到 ES6,才将其写入了标准。 需要注意的是,ES6 对这个属性的行为做出了一些修改。 如果将一个匿名函数赋值给一个变量,ES5 的name属性,会返回空字符串,而 ES6 的name属性会返回实际的函数名。 var f = function () {}; // ES5 f.name // "" // ES6 f.name // "f" 如果将一个具名函数赋值给一个变量,则 ES5 和 ES6 的name const bar = function baz() {}; // ES5 bar.name // "baz" // ES6 bar.name // "baz" 箭头函数 ES6 允许使用“箭头”(
1.扩展运算符 含义: 扩展运算符,三个点(...),将一个数组转为用逗号分隔的参数顺序。 例如[1,5,10,15].findIndex(function(value,index,arr){ return value > 9; }) 6.数组实例的fill()
一、属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法 let a=1; let b=2; let es5={a:a,b:b}; // 等同于 let es6={a,b}; 上面代码表明 ,ES6 允许在对象之中,直接写变量。 对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中 let z = { a: 3, b: 4 }; let n = { ...z }; n // { a: 3, b: 4 } 由于数组是特殊的对象,所以对象的扩展运算符也可以用于数组 let foo = { ... ['a', 'b', 'c'] }; foo // {0: "a", 1: "b", 2: "c"} 如果扩展运算符后面是字符串,它会自动转成一个类似数组的对象 {...'
延续之前的关于ES6的学习内容整理,该篇主要是整理ES6中关于对象的扩展,希望对大家有帮助。之前已经整理了ES6--字符串扩展和ES6--函数扩展,大家有兴趣可以移步了解。 setItem: setItem, clear: clear } 属性表达式 javascript中定义对象属性,最常见的方式如下: let obj = {} obj.iseditable = true ES6中允许用表达式作为对象的属性 = -0 //true NaN === NaN // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true ES5可以通过如下方法扩展 只字符串化可枚举的属性 Object.assign(): 忽略enumerable为false的属性,只拷贝可枚举的属性 这四个操作之中,前三个是 ES5 就有的,最后一个Object.assign()是 ES6 另外,ES6 规定,所有 Class 的原型的方法都是不可枚举的。