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://***/aaa/init.inc.php" ). "<br>" ; echo extname( "init.inc.php" ). "<br>" ; echo extname( "C:/aaa/init.inc.php" ). "<br>" ; echo extname( "http://***/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字符串常见面试题的更多相关文章
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- iOS常见面试题汇总
iOS常见面试题汇总 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Reference Counting 的缩写, 即自动引用计数. 这是苹果在 i ...
- JDBC常见面试题
以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...
- Mybatis常见面试题
Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...
- JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- PHP常见面试题汇总(二)
PHP常见面试题汇总(二) //第51题:统计一维数组中所有值出现的次数?返回一个数组,其元素的键名是原数组的值;键值是该值在原数组中出现的次数 $array=array(4,5,1,2,3,1, ...
- java常见面试题及答案
java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...
- python爬虫常见面试题(一)
前言 之所以在这里写下python爬虫常见面试题及解答,一是用作笔记,方便日后回忆:二是给自己一个和大家交流的机会,互相学习.进步,希望不正之处大家能给予指正:三是我也是互联网寒潮下岗的那批人之一,为 ...
随机推荐
- [转载]软件测试之Web测试经典总结
转载自:软件测试之Web测试经典总结 基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且, ...
- python 发送邮件例子
想到用python发送邮件 主要是服务器 有时候会产生coredump文件 ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生cored ...
- H - Pots
题目大意: 有一个瓶子A和一个瓶子B,可以有三种操作倒满,倒空,或者把瓶子A倒向瓶子B(或者把瓶子B倒向瓶子A),可以扩展出6种操作,没什么简单的写法,只能一种一种的写..... 当然是使用广搜... ...
- SVN强制注释
1.目的 在使用SVN作为版本控制的时候,强制提交的人员写注释,这样能确保每次提交都有注释,方便查看 2.解决办法 2.1给工程加上属性 2.1.1在工程提交之后,通过客户端 ...
- bzoj1036 zjoi2008 树的统计 count
填坑= =第一道裸树剖 #include<cstdio> #include<algorithm> #include<cstring> #include<cst ...
- Swift开发之 使用系统的TabbarController
使用系统的tabbar解决图片的问题. 用sb使用系统的tabbar,弄好后发现图片始终是蓝色的,并非原来的图片,后经上网查资料,问问同事,有了以下的这些代码,做个标记. AppDelegate中 f ...
- 阿里云服务器[教程3]一键安装php+mysql+ftp+nginx环境
直接看地址 http://help.aliyun.com/manual?spm=0.0.0.0.F5PPZs&helpId=129
- [转] nginx+FastCGI+c++
from: http://www.cnblogs.com/xiaouisme/archive/2012/08/01/2618398.html 一 安装 目的:不需支持php等.就html就行了.步骤: ...
- nginix 笔记
1. 一个master进程,多个worker进程,worker进程数目可自动配置为核的数目 2. 配置文件ngnix.conf存放在linux的/etc/ngnix目录下
- java.util.Date和java.sql.Date
java.util.Date是在除了SQL语句的情况下面使用的. java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分 它们都有getTime方法返回毫秒数,自然就可以直接构建 ...