PHP 提取输入文件的扩展名
题目如下:
写一个函数,尽可能高效地从一个标准URL里取出文件的扩展名。
例如: http://www.test.com.cn/abc/de/fg.inc.php?id=1需要取出php或.php。
关于这点类似的情况,其实在PHP 计算两个文件的相对路径已经有集成了,不过提取出来而已。
题目如下:
写一个函数,尽可能高效地从一个标准URL里取出文件的扩展名。
例如: http://www.test.com.cn/abc/de/fg.inc.php?id=1需要取出php或.php。
关于这点类似的情况,其实在PHP 计算两个文件的相对路径已经有集成了,不过提取出来而已。
题目如下:
请写一个函数,实现以下功能:
字符串“open_door”转换成“OpenDoor”、”make_by_id”转换成“MakeById”。
似乎我有点没用函数(其实封装起来就好了吧OTZ)。
没错这是我目前的得意之作之一,还特地写了CSS,虽然不怎么好……
所谓使尽浑身解数……
打了草稿,嗯虽然估计过会儿我自己都要看不懂了。(思路,{}
的部分在写下来之后发现了共同点就合并了)
删除 . 和空白数组
比较相同元素,到不同时中断 统计b还有多少元素 不同元素的多少决定了..个数 按序输出不同元素
count数组中元素的大小,取小的那一个作为比较次数 比较一个元素删除一个元素
{如果比完完全符合 则如果b小 返回a剩余元素 b大 返回差集数组计算元素数返回../数
如果不完全符合,则b剩余元素替换为..后加上a剩余元素}
b剩余元素变为../后输出a剩余元素
如果输入文件名a/..
为了找相对路径规律还写了不同的……
题目如下:
输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100~192.168.1.150范围内。
当时想出了两种方法,一种把字符串按照.来拆分成数组,一个个范围比较,一种去掉点之后比较数字大小,可是后者有个问题,要是他们的IP地址不符合格式怎么办,还是得变成数组,所以就干脆用了前者。
冒泡排序,所有语言中的基础排序方法OTZ(画外音:那为什么你总是忘了冒泡排序的原理勒)
百度百科介绍:
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再?> 需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。
介绍2:
冒泡排序算法的运作如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
一直以来都用第三个变量过渡来交换两个数,那么如何节省变量呢(个人认为……这是用途OTZ变量多感觉很乱啊)
其实真的超简单OTZ
list($a, $b) = array($b, $a);
list()
的功能是把数组中的一些值赋给变量
关于list()
的扩展阅读:http://www.php.net/manual/zh/function.list.php
这个,其实PHP还是有自带函数的,number_format()
扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp
不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。
缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)
这其实还是一道题目OTZ当然不用在意这些细节,写出来之后它已经不算是题目了吧。
但我写的函数有个缺点,那就是它是以length
分割的(因为还不会正则表达式
),在PHP 语法糖一枚中提到过:
length = 1
代表 截取一个字节,所以对于中文不适用。
2014年02月02日更新:PHP 实现中文字符串截取无乱码修复中文支持
中文截取就会出现乱码问题。
补刀:如果不是题目的话可以使用官方自带函数strrev()
扩展阅读:http://www.w3school.com.cn/php/func_string_strrev.asp
先来看一下函数部分吧。
好久没有接触PHP了,目前还是在复习语法层的东西,而且还没复习到面向对象,这个还是稍微想了想才写出来的,自己写的,总会有点漏洞,所以我看得那本兔子书上说一般都用框架的。
功能是最简单的,也没有加上什么别的东西。(所以请不要输入恶意信息)
重点在于不跳转页面,直接在该页显示结果的思路:
说明:同行可以设置float:left
或者display:inline
两者效果略有不同,似乎前者效果更佳
更新:兼容性问题在html最前加入:
<!DOCTYPE html>
但仍然不兼容IE6及以下,是因为不支持li:hover ul
这个写法