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爬虫常见面试题及解答,一是用作笔记,方便日后回忆:二是给自己一个和大家交流的机会,互相学习.进步,希望不正之处大家能给予指正:三是我也是互联网寒潮下岗的那批人之一,为 ...
随机推荐
- 今天知道了一个 反向代理,是apache 的一个功能,这里记录一下
什么事情都需要自己 去弄,记住了这句话,不要以为 别人会来帮你 在 apache 的http.conf 文件中(去掉注释) LoadModule proxy_module modules/mod_pr ...
- bzoj1251 序列终结者(Splay Tree+懒惰标记)
Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这 ...
- 意大利进口的衬衫面料pH值严重超标·都市快报
意大利进口的衬衫面料pH值严重超标·都市快报 意大利进口的衬衫面料pH值严重超标 董捷 2007-03-24 通讯员 浙 检 记 者 董 捷 ...
- RHEL 6.4 安装svn和apache
1.安装软件包(RHEL已经按默认设置安装完成) 需要安装的.rpm软件包: postgresql-libs perl-URI subversion mod_dav_svn 2.创建svn文件夹和版本 ...
- table头部、尾部固定;中间内容定高自适应滚动
table头部.尾部固定;中间内容定高自适应滚动 很多时候,需要使用到表格做数据分析,不管是前端展现,还是后台管理系统节点展现 工作过程中遇到了,作为一个小笔记,备忘! 如下图所示 --------- ...
- STM8S 独立看门狗配置及使用
//独立看门口的时钟来源 内部低速时钟 128khz 除以2 即64khz //选择 IWDG_Prescaler_128 //64/128 =0.5 khz 2ms周期 #define IWDG_5 ...
- struts2入门程序
struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...
- NSDateFormatter 格式说明
格式化参数如下: G: 公元时代,例如AD公元 yy: 年的后2位 yyyy: 完整年 MM: 月,显示为1-12 MMM: 月,显示为英文月份简写,如 Jan M ...
- [转] HTML中调用JavaScript的几种情况和规范写法
比较简单,基础. 一.引用外部文件中的js脚本 <script type="text/javascript" src="ext.js"></s ...
- uva 10934 Dropping water balloons(转载)
本文转载自http://blog.csdn.net/shuangde800/article/details/11273123 题意 你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球 ...