1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
<META http-equiv='Content-Type' content='text/html; charset=gbk'>
请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意:
1. 需要处理完整的 html 页面,即不光此 meta 语句
2. 忽略大小写
3. ' 和 " 在此处是可以互换的
4. 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行
5. 注意处理多余空格
3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
4.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
5.简述论坛中无限分类的实现原理。
6.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。


最新回复
第一个容易..
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
写得不好,期待各位大大的代码。
[ 本帖最后由 小星 于 2008-9-13 18:16 编辑 ]
(不保证代码的完全正确性,我只是随便一写,说明思路)
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
这个简单,不说了
2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
<META http-equiv='Content-Type' content='text/html; charset=gbk'>
请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意:
1. 需要处理完整的 html 页面,即不光此 meta 语句
2. 忽略大小写
3. ' 和 " 在此处是可以互换的
4. 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行
5. 注意处理多余空格
这个也容易,就是文件和字符串操作,读入文件,替换,写入
fopen->fread->preg_replace->fwirte->fclose
3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
这个题有点意思,我想了下:
<?php
function getRelativePath($path_a, $path_b){
//取得path_a相对于path_b的相对路径
//主要思想就是判断俩个路径最左边的相同的最长部分,然后拼凑相对路径
//细节上,需要调整,比如临界点的slash(/)
$tmp_a = explode('/', $path_a);
$tmp_b = explode('/', $path_b);
$index = 0;
for($i=1, $len=count($tmp_a); $i < $len; $i++){
if(strcmp($tmp_a[$i], $tmp_b[$i])){
break;
}
$index++;
}
$relative_path = '';
for($i = $index, $len = count($tmp_a); $i<$len; $i++){
$relative_path .= '../';
}
for($i = $index, $len = count($tmp_b); $i<$len; $i++){
$relative_path .= '../'.$tmp_b[$i]
}
return $relative_path;
}
?>
4.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
<?php
function listDir($path){
$dir = opendir($path);
while($node = readdir($dir)){
if(in_array($node, array(".", ".."))){
continue; //忽略.和..
}
if(is_file($node)){
echo $node;
}
if(is_dir($node)){
listDir(realpath($path.$node));
}
}
}
?>
5.简述论坛中无限分类的实现原理。
这个简单不说了
6.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。
window.open? 这部分用js实现,主要是要用到window.opener, 之类的引用
[ 本帖最后由 laruence 于 2008-9-13 21:13 编辑 ]
[ 本帖最后由 action2001 于 2008-9-16 13:03 编辑 ]
后缀不是3位你程序的结果就出错了
第四题就太常见了。。。
[ 本帖最后由 willko 于 2008-9-14 00:23 编辑 ]
QUOTE:
第3题运行了,结果不正确啊。。第4题,我不太认同这样用,,PHP5有scandir
[ 本帖最后由 默默 于 2008-9-14 19:17 编辑 ]
QUOTE:
既然用parse_url,不如用pathinfoQUOTE:
扩展名后面不止会有"?" ,还可能会出现"#" ,用parse_url的话#后面的部分会被忽略,而pathinfo不会,那样需要多加一个判断[ 本帖最后由 默默 于 2008-9-14 19:34 编辑 ]
QUOTE:
呵呵,不好意思,忘记还有锚点了