PHP取文件后缀名
1、利用 pathinfo 函数
$urlname = 'http://www.neatcn.com/attachment/test.gif';
$path_info = pathinfo($urlname );
echo $path_info['extension'];
2、discuz里面利用strrchr取得后缀名
function fileext($filename) {
return trim(substr(strrchr($filename, '.'), 1, 10));
}
//个人建议在$filename上加上basename(),这样可以对路径也处理一下
3、利用end函数
$filename = 'http://www.neatcn.com/attachments/test.gif';
echo(end(explode(".",$filename )));//split之类的都可以
最早以前判断都是判断strpos取得最后一个.的所在位置,现在都用strrchr了,毕竟它可以安全的操作二进制文件。
还可以通过finfo::file($filename);来取得文件的类型,然后再进行处理,不过。这已经不算是取文件名了。
大至是以上三种,其他一些方法类似的就不一一列出了
===================================================
产生随机数.数字越小出现的概率越大
引文:http://www.skiyo.cn/article/Skiyo-75-1228209727.html
今天在PHPChina上面有人问这个问题.我琢磨了半个小时才搞定.
先写一个一般的思路.
$arr = array(); for($i=0;$i<=9;$i++){ for($j=0;$j<=(9-$i);$j--){ $arr[] = $i; } } $rand = array_rand($arr); 这种的缺点就是当数据大的时候.就会非常的慢.
其实这个是个脑筋急转弯.我想了想.想出个好办法.
<?php
function fun(){
$num = rand(0,9); //10以内的数字平均分配
$num2 = rand(0,9);
($num2<=$num) ? $return.=$num2 : $return.=$num;
return $return;
}
function totalStr($haystack, $needle,$i = 0){
while(strpos($haystack,$needle) !== false) {
$haystack = substr($haystack, (strpos($haystack,$needle) + 1));
$i++;
}
return $i;
}
for ($i=0;$i<=1000;$i++){ $str .= fun(); }
for ($i=0;$i<=9;$i++){ echo totalStr($str,"$i")."/n"; //0-9出现的次数 }
什么原理我也说不太清楚.就是一种感觉..
大家自己去理解吧..O(∩_∩)O
还有另外一位大哥的解决办法:
function getRandomByFactor($max,$factor=2){ $c = rand(0,pow($max,$factor)); return $max - ceil(pow($c,1/$factor)); } 不过我还是更偏向于我的解决方案.后来经过高人指点.我将这个函数最精简化.大家看一下就明白了.
function getRand($min,$max) { $num=rand($min,$max); return rand($min,$num); }
===================================================
星座函数,选择月,日算出星座的函数function checkxz(m,d){
var renum=/^/d+$/i;
if( !(renum.test(m) && renum.test(d) && m>0 && d>0 ) ) return "";
m=parseInt(m);
d=parseInt(d);
var xzi;
var XZDict = '摩羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手';
var Zone = new Array(1222,120,219,321,421,521,622,723,823,923,1023,1122,1222);
if((100*m+d)>=Zone[0]||(100*m+d)<Zone[1])
xzi=0;
else
for(xzi=1;xzi<12;xzi++){
if((100*m+d)>=Zone[xzi]&&(100*m+d)<Zone[xzi+1])
break;
}
result = XZDict.substring(2*xzi,2*xzi+2)+'座-'+((xzi==0)?12:xzi);
return result;
}
PHP实用代码
最新推荐文章于 2024-07-19 14:50:02 发布