PHP获取文件扩展名的方法实例总结,Webpack中publicPath路径问题详解

新近和辛亏搭建三个基于webpack的react项目,遇到关于output.publicPath和webpack-dev-server中publicPath的标题,而官方文书档案对它们的陈说亦非很明亮,所以自身探究了下并写下本文记录。

本文实例总括了PHP获取文件扩充名的点子。共享给大家供大家仿效,具体如下:

<asp:TextBox runat=”server”  title=”邮箱正确格式:xxx@xxx.xxx”
ID=”tbMemo”  
pattern=”^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$”></asp:TextBox>

output

在PHP面试中也许考试中会有不小概率蒙受写出八种获得文件扩充名的点子,下边是本人本人计算的局地格局

  相称汉语字符的正则表明式: [u4e00-u9fa5]   
  评注:般配华语还真是个头疼的事,有了这几个表明式就好办了 
  匹配双字节字符(满含汉字在内):[^x00-xff] 
  评注:能够用来总结字符串的尺寸(三个双字节字符长度计2,ASCII字符计1) 
  相称空白行的正则表明式:ns*r 
  评注:可以用来删除空白行 
  相配HTML标识的正则表达式:<(S*?)[^>]*>.*?|<.*?
/> 
  评注:英特网流传的本子太倒霉,上边这么些也独有能匹配部分,对于复杂的嵌套标志依然力不能及 
  相配首尾空白字符的正则表明式:^s*|s*$ 
  评注:能够用来删除行首行尾的空白字符(包罗空格、制表符、换页符等等),极度管用的表明式 
  相配Email地址的正则表明式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
  评注:表单验证时很实用 
  相称网站UKugaL的正则表明式:[a-zA-z]+://[^s]* 
  评注:英特网流传的版本效果很有限,下边那么些宗旨得以知足需求 
  相称帐号是或不是合法(字母开始,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
  评注:表单验证时很实用 
  相称国内电话号码:d{3}-d{8}|d{4}-d{7} 
  评注:相称方式如 0511-4405222 或 021-87888822 
  相称TencentQQ号:[1-9][0-9]{4,} 
  评注:腾讯QQ号从10000开始 
  相配中国邮编:[1-9]d{5}(?!d) 
  评注:中夏族民共和国邮编为6位数字 
  相配居民身份证:d{15}|d{18} 
  评注:中华夏族民共和国的身份ID为十三人或贰十一位 
  匹配ip地址:d+.d+.d+.d+ 
  评注:提取ip地址时有用 
  匹配特定数字: 
  ^[1-9]d*$    //相配正整数 
  ^-[1-9]d*$   //相配负整数 
  ^-?[1-9]d*$   //相配整数 
  ^[1-9]d*|0$  //相称非负整数(正整数 + 0) 
  ^-[1-9]d*|0$   //相称非正整数(负整数 + 0) 
  ^[1-9]d*.d*|0.d*[1-9]d*$   //相称正浮点数 
  ^-([1-9]d*.d*|0.d*[1-9]d*)$  //相配负浮点数 
  ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //相配浮点数 
  ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$  
//相配非负浮点数(正浮点数 + 0) 
  ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //相配非正浮点数(负浮点数

output选项钦赐webpack输出的职分,个中相比较关键的也是常常使用的有 path 和
publicPath

$file = '需要进行获取扩展名的文件.php';
//第一种,根据.拆分,获取最后一个元素的值
function getExt1{
return end(explode(".",$file);)
}
//第二种,获取最后一个点的位置,截取
function getExt2{
return substr($file,strrpos($file,'.')+1);
}
//第三种,根据.拆分,获取最后一个元素的值
function getExt3($file) {
return array_pop(explode('.',$file)); 
}
//第四种,pathinfo 
function getExt5($file) {
$arr = pathinfo($file);
return $arr['extension'];
//或者这样return pathinfo($file,PATHINFO_EXTENSION);
}
//第五种,正则,子模式
function getExt6$file){
preg_match("/(gif | jpg | png)$/",$file,$match);
$match=$match[0];
} 
//第六种,正则反向引用
function getExt7($file){
$match=preg_replace("/.*\.(\w+)/" , "\\1" ,$file );
echo $match;
}
  • 0) 
      评注:管理大量多少时有用,具体运用时留心修正 
      匹配特定字符串: 
      ^[A-Za-z]+$  //相称由三十多少个西班牙语字母组成的字符串 
      ^[A-Z]+$  //匹配由三十多少个法语字母的大写组成的字符串 
      ^[a-z]+$  //匹配由30个保加圣Pedro苏拉语字母的小写组成的字符串 
      ^[A-Za-z0-9]+$  //相配由数字和二十捌个罗马尼亚(România)语字母组成的字符串 
      ^w+$  //相称由数字、贰14个英语字母恐怕下划线组成的字符串 
      在利用RegularExpressionValidator验证控件时的验证功效及其表明表明式介绍如下: 
      只可以输入数字:“^[0-9]*$” 
      只可以输入n位的数字:“^d{n}$” 
      只好输入至少n位数字:“^d{n,}$” 
      只好输入m-n位的数字:“^d{m,n}$” 
      只可以输入零和非零上马的数字:“^(0|[1-9][0-9]*)$” 
      只好输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$” 
      只好输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$” 
      只可以输入非零的正整数:“^+?[1-9][0-9]*$” 
      只好输入非零的负整数:“^-[1-9][0-9]*$” 
      只好输入长度为3的字符:“^.{3}$” 
      只好输入由三十多个乌克兰语字母组成的字符串:“^[A-Za-z]+$” 
      只能输入由贰拾四个大写爱尔兰语字母组成的字符串:“^[A-Z]+$” 
      只可以输入由28个小写意大利语字母组成的字符串:“^[a-z]+$” 
      只好输入由数字和贰十四个泰语字母组成的字符串:“^[A-Za-z0-9]+$” 
      只可以输入由数字、叁拾贰个土耳其共和国(The Republic of Turkey)语字母恐怕下划线组成的字符串:“^w+$” 
      验证用户密码:“^[a-zA-Z]w{5,17}$”准确格式为:以字母先河,长度在6-18里面, 
      只可以分包字符、数字和下划线。 
      验证是或不是满含^%&”,;=?$”等字符:“[^%&”,;=?$x22]+” 
      只好输入汉字:“^[u4e00-u9fa5],{0,}$” 
      验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 
      验证InternetURL:“^ 
      验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$” 
      准确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”, 
      “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。 
      验证居民身份证号(十陆个人或22位数字):“^d{15}|d{}18$” 
      验证一年的10个月:“^(0?[1-9]|1[0-2])$”准确格式为:“01”-“09”和“1”“12” 
      验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 
      准确格式为:“01”“09”和“1”“31”。 
      相称中文字符的正则表明式: [u4e00-u9fa5] 
      相称双字节字符(富含汉字在内):[^x00-xff] 
      相配空行的正则表明式:n[s| ]*r 
      相配HTML标识的正则表明式:/<(.*)>.*|<(.*) />/ 
      相称首尾空格的正则表达式:(^s*)|(s*$) 
      相称Email地址的正则表明式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
      匹配网站U君越L的正则表明式:
    ./?%&=]*)? 
      (1)应用:总计字符串的长短(一个双字节字符长度计2,ASCII字符计1) 
      String.prototype.len=function(){return
    this.replace([^x00-xff]/g,”aa”).length;} 
      (2)应用:javascript中平昔不像vbscript那样的trim函数,我们就足以接纳这些表明式来贯彻 
      String.prototype.trim = function() 
      { 
      return this.replace(/(^s*)|(s*$)/g, “”); 
      } 
      (3)应用:利用正则表达式分解和转移IP地址 
      function IP2V(ip) //IP地址调换来对应数值 
      { 
      re=/(d+).(d+).(d+).(d+)/g //相称IP地址的正则表明式 
      if(re.test(ip)) 
      { 
      return
    RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 
      } 
      else 
      { 
      throw new Error(“Not a valid IP address!”) 
      } 
      } 
      (4)应用:从UQX56L地址中领到文件名的javascript程序 
      s=””; 
      s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ;//Page1.htm 
      (5)应用:利用正则表明式限制网页表单里的文本框输入内容 
      用正则表明式限制只好输入闽南语:onkeyup=”value=value.replace(/[^u4E00-u9FA5]/g,”)
    “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^u4E00-u9FA5]/g,”))” 
      用正则表明式限制只可以输入全角字符:
    onkeyup=”value=value.replace(/[^uFF00-uFFFF]/g,”)
    “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^uFF00-uFFFF]/g,”))” 
      用正则表明式限制只好输入数字:onkeyup=”value=value.replace(/[^d]/g,”)
    “onbeforepaste=
    “clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^d]/g,”))” 
      用正则表明式限制只可以输入数字和英语:onkeyup=”value=value.replace(/[W]/g,”)
    “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^d]/g,”

output.path

更加的多关于PHP相关内容感兴趣的读者可查看本站专项论题:《php文件操作总括》、《PHP网络编制程序本事计算》、《php面向对象程序设计入门教程》、《php字符串(string)用法计算》、《php+mysql数据库操作入门教程》及《php常见数据库操作技艺汇总》


默认值: process.cwd()

盼望本文所述对大家PHP程序设计具有扶助。

output.path 只是提示输出的目录,对应叁个 相对路径,举个例子在品种中家常便饭会做如下配置:

您恐怕感兴趣的篇章:

  • PHP中拿走文件扩充名的N种方法小结
  • php获取文件名称和扩充名的法子
  • PHP获取文件扩张名的4种方法
  • php退换目录及子目录下有所的公文后缀扩展名的代码
  • php得到文件扩充名三法
  • php文件扩大名决断及取得文件扩张名的N种方法
  • php完结不通过扩展名正确决断文件类型的点子【finfo_file方法与二进制流】
  • php从给定url获取文件扩充名的艺术
  • PHP落成的得到文件mimes类型工具类示例
  • php正确获取文件MIME类型的办法
  • php实现获取文件mime类型的主意
  • PHP获取文件扩张名的常用方法小结【各类艺术】
output: {
 path: path.resolve(__dirname, '../dist'),
}

output.publicPath

暗中认可值:空字符串

法定文书档案中对publicPath的演说是

webpack
提供三个十一分实用的安插,该配置能帮助你为项目中的全体财富钦命贰个基础路线,它被叫作公共路线(publicPath)。

而有关什么使用该路径并从未说清楚…

实际这里说的具备能源的底蕴路线是指项目中援用css,js,img等财富时候的贰个基础路线,这几个基础路线要合营具体能源中内定的不二等秘书诀使用,所以实际打包后财富的访问路线能够用如下公式表示:

静态能源最后访谈路线 = output.publicPath + 财富loader或插件等安排路线

例如

output.publicPath = '/dist/'

// image
options: {
 name: 'img/[name].[ext]?[hash]'
}

// 最终图片的访问路径为
output.publicPath + 'img/[name].[ext]?[hash]' = '/dist/img/[name].[ext]?[hash]'

// js output.filename
output: {
 filename: '[name].js'
}
// 最终js的访问路径为
output.publicPath + '[name].js' = '/dist/[name].js'

// extract-text-webpack-plugin css
new ExtractTextPlugin({
 filename: 'style.[chunkhash].css'
})
// 最终css的访问路径为
output.publicPath + 'style.[chunkhash].css' = '/dist/style.[chunkhash].css'

以此最后静态财富访问路线在接纳html-webpack-plugin打包后获得的html中能够见到。所以
publicPath
设置成相对路径后,绝对路线是周旋于build之后的index.html的,譬喻,若是设置
publicPath: ‘./dist/’ ,则打包后js的援引路线为 ./dist/main.js
,可是此间有叁个难题,相对路线在访谈当地时能够,不过即使将静态财富托管到CDN上则做客路径显明无法选拔相对路线,可是一旦将
public帕特h 设置成 / ,则打包后拜见路线为 localhost:8080/dist/main.js
,本地不可能访谈

为此这里要求在上线时候手动改动 publicPath
,以为不是很平价,不过不理解该怎么消除…

貌似情状下
publicPath应该以’/’结尾,而别的loader或插件的布署不要以’/’开端

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图