1,获取url的扩展名。
例如:www.baidu.com/shop/shop.php?version=20130314
<?php //$str=$_SERVER["REQUEST_URI"]; $str="http://www.baidu.com/shop/shopdsfsf.JPG?providerId=123456"; $extStr=parse_url($str); $extArr=explode(".",$extStr["path"]); echo $extArr[1]; echo "------------------------------<br/>"; $extStr=$_SERVER["PHP_SELF"]; $extArr=explode(".",$extStr); echo $extArr[1]; echo "------------------------------<br/>"; ?>
问:如何获取.php
2,strlen与mb_strlen的区别?
<?php $str="123abc"; echo strlen($str)."<br/>";//6 $zstr="123中国人abc"; echo strlen($zstr)."<br/>";//15 echo mb_strlen($zstr,"utf8")."<br/>";//9 echo "-----------------------------<br/>"; //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'<br>';//6 echo mb_strlen($str,'gbk').'<br>';//8 echo mb_strlen($str,'gb2312').'<br>';//10 ?>
3,1234567890如何变为1,234,567,890,写一个函数。
<?php $str="1234567890"; $preg='/(\d{3})/'; $preg2='${1},'; $str=strrev($str);//字符串翻转 0987654321 $str=preg_replace($preg,$preg2,$str);//不能用双引号 098,765,432,1 $str=strrev($str);//1,234,567,890 echo trim($str);//trim() 函数从字符串的两端删除空白字符和其他预定义字符。 ?>
4,如何建立合适的索引
经常需要进行更新操作的属性
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少
甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引
的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引
对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新
操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是
没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负
面影响更大。
5,三个复选框,给三个不同的name.选中一个,其他三个也选中。去掉一个,其他三个也去掉。
6,写一个邮箱的正则。
<?php $match="/^([a-zA-Z0-9-_\.])+@(([0-9a-zA-Z-])+\.)+([a-zA-Z0-9]{2,4})+$/"; //$match="/^([a-zA-Z0-9_\.-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/"; $strMail="b@yacol@.com.cn"; $re=preg_match($match,$strMail); var_dump($re); ?>
7,给你两个整形的值,如何不借入第三个变量,交换两个值。
<?php $a=3; $b=5; $a=$a+$b; $b=$a-$b; $a=$a-$b; echo $a."<br/>".$b; ?>
8,已知一个人的出生日期,计算这个人的年龄,精确到天。
<?php function getAge($birthday){ $now=date("Ymd"); //分解当前日期为年月日 $y=(int)($now/10000);//当前年份保存为int型 $m=(int)($now%10000/100);//当前月份保存为int型 $d=($now%100); //分解生日为年月日 $yy=(int)($birthday/10000);//出生年份保存为int型 $ym=(int)($birthday%10000/100);//出生月份保存为int型 $yd=($birthday%100); //特殊月份计算 if($y%4==0||($y%400==0&&$y%100==0)){ $special=29; }else{ $special=28; } //各月上一个月的天数 switch($m){ case 2:$add=31; case 4:$add=31; case 6:$add=31; case 8:$add=31; case 9:$add=31; case 11:$add=31; case 1:$add=31; case 5:$add=30; case 7:$add=30; case 10:$add=30; case 12:$add=30; case 3:$add=$special; } if($d<$yd){ $d=$d+$add; $m=$m-1; } if($m<$ym){ $m=$m+12; $y=$y-1; } //运算年龄 if($now>$birthday){ $arr["day"]=$d-$yd; $arr["month"]=$m-$ym; $arr["year"]=$y-$yy; return $arr; } else{ return 0; } } $birthday="19880808"; $arrAge=getAge($birthday); var_dump($arrAge); ?>
打印结果为:
array 'day' => int 11 'month' => int 7 'year' => int 24
9,为什么一般把css放在头部,js放在尾部?(两条以上)
在开发网页时,尽量将css放置在页面的header里,js不管是外部引入的或嵌入的js片段
都应放在页面的尾部。
因为页面在加载时,css加载是可以并发请求 的(同页面中的图片,ie6除外),而js加载
时需要等待一个js文件加载完成后才加载其他资源,为了页面的快速呈现,放置在尾部效果
较好。
同时由于嵌入的js片段会阻塞整个页面 的呈现(外部引入js文件阻塞其他资源下载,
也会阻塞该js引入位置以下的页面的内容 呈现,所以要放置页面的最下面),需要利用工
具来调用,如yui的
YAHOO.util.Event.onDOMReady(function() {...}); 方法,这样至少可以保证页面的框
架出来后才执行需要的js方法。