php获取图片后缀
Ⅰ php怎样获取文件后缀名
//方法一:
functionextend_1($file_name){
$retval="";
$pt=strrpos($file_name,".");
if($pt)
$retval=substr($file_name,$pt+1,strlen($file_name)-$pt);
return($retval);
}
//方法二内
functionextend_2($file_name){
$extend=pathinfo($file_name);
$extend=strtolower($extend["extension"]);
return$extend;
}
//方法三容functionextend_3($file_name){
$extend=explode(".",$file_name);
$va=count($extend)-1;
return$extend[$va];
}
Ⅱ 请问:php如何获取数组中图片名称的后缀名呢
$aa=array('15.jpg','5.png');
$bb=array();//存放文件以及后缀
foreach($aaas$k=>$v){
$bb[$k]['img']=$v;
$bb[$k]['ext']=getExt($v);
}
print_r($bb);
//获取文件后缀
functiongetExt($file){
returnsubstr(strrchr($file,'.'),1);
}
Ⅲ php 验证上传的文件类型为图片,并获得文件的后缀名
以下是我上传了一个图片后显示的 $_FILES['filename']的信息
[filename] => Array
(
[name] => Winter.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php2jw7QX
[error] => 0
[size] => 105542
)
其中type是文件类型的minitype 表示方法,例如普通的html的类型是text/html
如果你想用扩展名的方式判断的话可以用以下代码:
<?php
#允许的文件扩展名
$allowed_types = array('jpg', 'gif', 'png');
$filename = $_FILES['filename']['name'];
#正则表达式匹配出上传文件的扩展名
preg_match('|\.(\w+)$|', $filename, $ext);
#print_r($ext);
#转化成小写
$ext = strtolower($ext[1]);
#判断是否在被允许的扩展名里
if(!in_array($ext, $allowed_types)){
die('不被允许的文件类型');
}
?>
Ⅳ php如何获取上传文件的后缀
1.$file = 'x.y.z.png';
echo substr(strrchr($file, '.'), 1);
解析:strrchr($file, '.')
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
2.$file = 'x.y.z.png';
echo substr($file, strrpos($file, '.')+1);
解析:strrpos($file, '.')
查找 "." 在字符串中最后一次出现的位置,返回位置 substr()从该位置开始截取
3.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo $arr[count($arr)-1];
4.$file = 'x.y.z.png';
$arr=explode('.', $file);
echo end($arr); //end()返回数组的最后一个元素
5.$file = 'x.y.z.png';
echo strrev(explode('.', strrev($file))[0]);
6.$file = 'x.y.z.png';
echo pathinfo($file)['extension'];
解析:pathinfo() 函数以数组的形式返回文件路径的信息。包括以下的数组元素:
[dirname]
[basename]
[extension]
7.$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);
总结:字符串截取2种,数组分割3种,路径函数2种
Ⅳ 如何用PHP得到文件的扩展名
sybase_connect连上数据库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数函数种类: 数据库功能 本函数用来打开与 Sybase 数据库的连专接。
参数 servername 为欲连上属的数据库服务器名称。
参数 username 及 password 可省略,分别为连接使用的帐号及密码。
使用本函数需注意早点关闭数据库,以减少系统的负担。
连接成功则返回数据库的连接代号,失败返回 false 值。
Ⅵ php 取文件后缀名几种有效的方法
PHP中获取文件扩展名的N种方法
从网上收罗的,基本上就以下这几种方式:
第1种方法:
functionget_extension($file)
{
substr(strrchr($file,'.'),1);
}
第2种方法:
functionget_extension($file)
{
returnsubstr($file,strrpos($file,'.')+1);
}
第3种方法:
functionget_extension($file)
{
returnend(explode('.',$file));
}
第4种方法:
functionget_extension($file)
{
$info=pathinfo($file);
return$info['extension'];
}
第5种方法:
functionget_extension($file)
{
returnpathinfo($file,PATHINFO_EXTENSION);
}
以上几种方式粗看了一下,好像都行,特别是1、2种方法,在我不知道pathinfo有第二个参数之前也一直在用。但是仔细考虑一下,前四种方法都有各种各样的毛病。要想完全正确获取文件的扩展名,必须要能处理以下三种特殊情况。
没有文件扩展名
路径中包含了字符.,如/home/test.d/test.txt
路径中包含了字符.,但文件没有扩展名。如/home/test.d/test
很明显:1、2不能处理第三种情况,3不能正确处理第一三种情况。4可以正确处理,但是在不存在扩展名时,会发出一个警告。只有第5种方法才是最正确的方法。顺便看一下pathinfo方法。官网上介绍如下:
$file_path=pathinfo('/www/htdocs/your_image.jpg');
echo"$file_path['dirname'] ";
echo"$file_path['basename'] ";
echo"$file_path['extension'] ";
echo"$file_path['filename'] ";//onlyinPHP5.2+
它会返回一个数组,包含最多四个元素,但是并不会一直有四个,比如在没有扩展名的情况下,就不会有extension元素存在,所以第4种方法才会发现警告。但是phpinfo还支持第二个参数。可以传递一个常量,指定返回某一部分的数据:
PATHINFO_DIRNAME-目录
PATHINFO_BASENAME-文件名(含扩展名)
PATHINFO_EXTENSION-扩展名
PATHINFO_FILENAME-文件名(不含扩展名,PHP>5.2)
这四个常量的值分别是1、2、4、8,刚开始我还以为可以通过或运算指定多个:
pathinfo($file,PATHINFO_EXTENSION|PATHINFO_FILENAME);
后来发现这样不行,这只会返回几个进行或运算常量中最小的那个。也就是四个标志位中最小位为1的常量。
Ⅶ php从给定url获取文件扩展名的方法
本文实例讲述了php从给定url获取文件扩展名的方法。分享给大家供大家参考。版具体实现方法如权下:
<?php
/**
*
给定url,获取文件后缀
*
@param
string
$url
*
@return
string
*/
function
getUrlPostfix
($url)
{
$url_arr
=
explode('.',
$url);
$postfix
=
$url_arr[count($url_arr)
-
1];
$substr
=
substr($postfix,
0,
3);
return
$substr;
}
$url
=
"http://www.bitsCN.com/index.html?id=1";
$str
=
getUrlPostfix($url);
echo
$str
.
"n";
希望本文所述对大家的php程序设计有所帮助。
Ⅷ php截取文件扩展名
解决楼主的问题的方法就是,分开写代码,即:
$filearr = split(".",$filename);
$filetype = end($filearr);
split 函数用来分割字符串的时候,基本等同于函数 preg_grep,分割表达式可以是一个正则表达式,也可以是一个普通字符串,所以本身的执行效率很低,这一点你要记得……
所以,实现你现在的这个需求的话,最好用explode函数,使用普通字符作为分割表达式……
但是也的确如楼上所说,split 函数(PHP里)已经弃用,你可以使用 preg_match、preg_match_all 、preg_grep 等使用正则表达式作为分割的函数来替代。
就整个你的需求而言,你的思路还不很好,当一个文件名是【a.b.c.d.e.f.g.php】的时候,程序要浪费多余的资源来分割其实你不用的a、b、c……,
所以要简单满足你取后缀名的需求的代码应该是:
$filetype=substr(strrchr($filename,'.'),1);
此外还有:$path_info = pathinfo($filename); $filetype = $path_info['extension']; 其实不是很推荐。
下面比较一下它们各自的执行效率:
设文件名是:aaa.bb.php、循环执行10000次;执行10次取平均值:
split + end :0.067644s
explode + end :0.016251s
pathinfo + ['extension'] :0.018983s
strrchr + substr :0.008611s
【以上文字现场版纯手敲,2012-2-25 10:41,谢谢】
Ⅸ php 获取url地址文件后缀
$array = pathinfo(url);
$array['extension']; 是后缀