1.正在浏览当前页面用户的 IP 地址:127.0.0.1
echo $_SERVER['REMOOT_ADDR']; 或者 getenv('REMOOT_ADDR');
服务器端的IP:gethostbyname('www.baidu.com');
2.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
function go2b(){
window.location = “b.html”;
window.close();
}
setTimeout( “go2b()”,5000 ); //5秒钟后自动执行go2b()
3.查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2
* $_SERVER["QUERY_STRING"] 获取当前URL?后面的值
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名
方法一:$require=$_SERVER['QUERY_STRING'];
方法二:$info=parse_url($url);$require=$info['query'];
4.当前运行脚本所在的文档根目录:d:inetpubwwwroot
echo $_SERVER['DOCUMENT_ROOT'];
5.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
function _scandir($dir){
$files=array();
if(is_dir($dir)){
if($handle=opendir($dir)){
while(($file=readdir($handle))!==false){ //注意!此处必须为全不等于
$file_path=$dir.'/'.$file;
if($file!='.' && $file!='..'){ //防止读取父级目录
if(is_dir($file_path)){
$files[$file]=_scandir($file_path);
}else{
$files[]=$file_path;
}
}
}
closedir($handle);
return $files;
}
}
}
$dir='d:/www/test/sa';
var_dump(_scandir($dir));
*windows中的文件编码是gbk格式的,打开会显示乱码,问题未解决
6、把 John 新增到 users 阵列?
solve 1:$users[]='join';
solve 2:array_push($user,'join');
7、在PHP中error_reporting这个函数有什么作用?
答:error_reporting() 设置 PHP 的报错级别并返回当前级别。
8、如何修改SESSION的生存时间(1分)
一:在php.ini 中设置 session.gc_maxlifetime = 1440 //默认时间
二:代码实现
$lifeTime = 24 * 3600; // 保存一天
session_set_cookie_params($lifeTime); //设置会话 cookie 生命周期参数 ,本函数仅在当前脚本执行过程中有效。 因此,如果要通过函数修改 cookie 参数,需要对每个请求都要 在调用 session_start() 函数之前调用 session_set_cookie_params() 函数。
session_start();
9、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
$concent=file_get_contents($url);
10、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
10、写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
*** strstr — 查找字符串的首次出现 ,返回该位置之前的字符串
strrchr — 查找指定字符在字符串中的最后一次出现,返回该位置之后的字符串
strpos — 查找字符串首次出现的位置 ,返回该位置指针
strrpos — 查找字符串最后一次出现的位置 ,返回该位置指针
metho1: $url=" http://www.sina.com.cn/abc/de/fg.php?id=1";
$info=parse_url($url);//解析出路径path和参数query
$path=$info['path'];//返回:$path=http://www.sina.com.cn/abc/de/fg.php
$ext=strrchr($path,'.');//返回:$ext=.php
$ext=ltrim($ext,'.');//去掉左边的点
echo $ext;
metho2: $url=" http://www.sina.com.cn/abc/de/fg.php?id=1";
$info=parse_url($url);
$path=$info['path'];
$file=basename($path);////显示带有文件扩展名的文件名
$fileinfo=pathinfo($file);
$ext=$fileinfo['extension'];
echo $ext;
11、使用五种以上方式获取一个文件的扩展名
$file="dir/upload.image.jpg";
function get_ext1($file){
$info=pathinfo($file);
return $info['extension'];
}
function get_ext2($file){
$arr=explode('.',$file);
return end($arr);//end()获取数组最后一个元素,current()获取当前元素
}
function get_ext3($file){
return substr(strrchr($file,'.'),1);
}
function get_ext4($file){
return substr($file,strrpos($file,'.')+1);
}
function get_ext5($file){
return pathinfo($file,PATHINFO_EXTENSION);
}
//
echo get_ext5($file);
12、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?
varchar是变长,节省存储空间,进行数据提取前必须先查找长度,效率相对低一些。
char是固定长度,可能浪费资源,但效率高。
13、请描述出两点以上XHTML和HTML最显著的区别
(1)XHTML必须强制指定文档类型DocType,HTML不需要
(2)XHTML所有标签必须闭合,HTML比较随意
14、写出三种以上MySQL数据库存储引擎的名称(提示:不区分大小写)
MyISAM、InnoDB、BDB
15、求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
echo (strtotime($date2)-strtotime($date2))/60/60/24
16、请写一个函数,实现以下功能:”make_by_id” 转换成 ”MakeById”。
$str="make_by_id";
method1:
$arr=explode('_',$str);
foreach ($arr as $k=>$v) {
$arr[$k]=ucfirst($v);
}
echo implode($arr);
method2:
$str=str_replace('_',' ',$str);
echo str_replace(' ','',ucwords($str));
17、js中网页前进和后退的代码
history.go(1) history.gp(-1)
18、&$a 表示引用传递
19、 php class中static,public,private,protected的区别?
static 静态,类名可以访问
public:权限是最大的,可以内部调用,实例调用等。
protected: 受保护类型,用于本类和继承类调用。
private: 私有类型,只有在本类中使用。
20、 HTTP协议中GET、POST和HEAD的区别?
HEAD: 只请求页面的首部。
GET: 请求指定的页面信息,并返回实体主体。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
(1)HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。
(2)在FORM提交的时候,如果不指定Method,则默认为GET请 求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为 该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(3)GET 这个是浏览器用语向服务器请求最常用的方法。POST这个方法也是用来传送数据的,但是与GET不同的是,使用POST的时候,数据不是附在URI后面传递的,而是要做为独立的行来传递,此时还必须要发送一个Content_length标题,以标明数据长度,随后一个空白行,然后就是实际传送的数据。网页的表单通常是用POST来传送的。