首页 > 代码库 > php字符串常见面试题
php字符串常见面试题
>> 本文固定链接: http://php.ncong.com/mianshi/mianshiti_string.html
>> 转载请注明: 恩聪php 2014年09月02日 于 恩聪PHP学习教程 发表
1.不用PHP函数,用方法写一个反转字符串的函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $str = "hello" ; function fan( $str ) { //声明一个临时的变量 $n = "" ; //获取字符串长度 $m = strlen ( $str )-1; for ( $i = $m ; $i >= 0; $i --) { $n .= $str { $i }; } return $n ; } echo fan( $str ); ?> |
2.写一个函数,将一个字符串(如:1234567890),转换成(如1,234,567,890)每3位用逗号隔开的形式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $str = "12345678932132" ; function nformat( $str ) { $n = "" ; //临时的变量 $m = strlen ( $str ); //获取字符串长度 $k = $m % 3; //让整个长度和3取余之后余数是多少 = 0 for ( $i =0; $i < $m ; $i ++) { if ( $i %3 == $k && $i !=0) { $n .= "," ; } $n .= $str { $i }; } return $n ; } echo nformat( $str ); ?> |
3.请写一个获取文件扩展名的函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php function extname( $url ) { if ( strstr ( $url , "?" )) { //如果有问号格式的文件, 将问号前的文件取出给变量$file list( $file ) = explode ( "?" , $url ); } else { $file = $url ; } //以下是第二步取出文件名 $loc = strrpos ( $file , "/" )+1; $filename = substr ( $file , $loc ); //以下是第三步取扩展名称 $arr = explode ( "." , $filename ); //弹出数组最后一个元素 return array_pop ( $arr ); } echo extname( "http://www.lampbrother.net/aaa/init.inc.php" ). "<br>" ; echo extname( "init.inc.php" ). "<br>" ; echo extname( "C:/aaa/init.inc.php" ). "<br>" ; echo extname( "http://www.lampbrother.net/aaa/init.inc.php?a=100" ). "<br>" ; ?> |
4.写一个函数,算出两个文件的相对路径。
如:
$a=’/a/b/c/d/e.php’
$b=’/a/b/12/34/c.php’
计算出$b相对于$a的相对路径应该是../../c/d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php function abspath( $a , $b ) { //第一步去除公共的目录结构 // $a = "/a/b/c/d/e.php"; // $b = "/a/b/12/34/c.php"; $a = dirname( $a ); // /a/b/c/d $b = dirname( $b ); // /a/b/12/34 $a = trim( $a , "/" ); // a/b/c/d $b = trim( $b , "/" ); // a/b/12/34 $a = explode ( "/" , $a ); // array("a", "b", "c", "d") $b = explode ( "/" , $b ); // array("a", "b", "12", "34") //合并上面代码相当于 $a = explode("/", trim(dirname($a), "/")); $num = max( count ( $a ), count ( $b )); for ( $i =0; $i < $num ; $i ++) { if ( $a [ $i ]== $b [ $i ]) { unset( $a [ $i ]); unset( $b [ $i ]); } else { break ; } } //$a = array("c", "d"); //$b = array("12", "34"); //第二步:回到同级目录, 进入另一个目录 $path = str_repeat ( "../" , count ( $b )).implode( "/" , $a ); // ../../c/d return $path ; } $a = "/a/b/c/d/e/w/f/e.php" ; $b = "/a/b/12/34/100/c.php" ; // ../../c/d echo abspath( $a , $b ); ?> |
php字符串常见面试题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。