专注前端,专注网页设计制作 - (网页制作/模板制作/设计) QQ:755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | TOP排行榜 | Tag标签 | 联系我们

php面试常用的题目大全

时间:2014-03-06来源:学技巧网站制作 作者:学技巧 阅读: 次 【 点评一下

1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
echo date('Y-m-d H:i:s', strtotime('-1 day'));
echo date('Y-n-j H:i:s', time()-60*60*24);
2、echo(),print(),print_r()的区别(3分)
echo, print 是语言结构,print_r是函数
echo 不返回值,其他返回值
等。
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值
print可以用于复杂的表达式echo不行(如:$b ? print "true" : print "false";)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
3、能够使HTML和PHP分离开使用的模板(1分)
现在当然是smarty
5、使用哪些工具进行版本控制?(1分)
SVN,CVS等
6、如何实现字符串翻转?(3分)string strrev ( string string)(
$str = 'test';
for($i = 1; $i <= strlen($str); $i++)
{
echo substr($str, -$i, 1);
}
?>
---------------------------------------------------------------
7、优化MYSQL数据库的方法。(4分,多写多得)
(1).建立适当的索引。
(2).使用连接(JOIN)来代替子查询(Sub-Queries)
(3).使用联合(UNION)来代替手动创建的临时表
8、PHP的意思(送1分)
PHP:Hypertext Preporcessor (是Preprocessor?)超文本预处理器
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
NOW() FOMART_DATE()
now(), DATE_FORMAT(date,format)
10、实现中文字串截取无乱码的方法。(3分)
mb_substr()
mb_substr('中文乱码问题的解决方法', 0, 7, 'utf-8');//按字来切分字符 输出:中文乱码问题的
echo mb_strcut('中文乱码问题的解决方法', 0, 7, 'utf-8');//按字节来切分字符 输出:中文乱
做个循环便利每个字节,ord判断是否为中文,中文的话看情况截取2个或3个字符,英文直接继续。
---------------------------------------------------------------
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
SVN,CVS等.没有用过
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
现在当然是PHPLIB、IT、Flexy、Smarty
13、请简单阐述您最得意的开发之作(4分)
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
缓存,静态化。
a。服务器硬件b.服务器软件配置(如防盗链 缓存设置等)c.php程序优化,页面最好生成静态
-----------------------------------------------------------------
15、用PHP写出显示客户端IP与服务器IP的代码1分)
服务器:$serverip = gethostbyname($_SERVER['SERVER_NAME']);
客户端:
function real_ip()
{
    if (isset($_SERVER))
    {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
        {
            $arr = explode(',', $_SERVER["HTTP_X_FORWARDED_FOR"]);
        /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
        foreach ($arr AS $ip)
        {
           $ip = trim($ip);
           if ($ip != 'unknown')
           {
                  $realip = $ip;
                  break;
           }
        }
        }
        elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
        {
            $realip = $_SERVER["HTTP_CLIENT_IP"];
        }
        else
        {
            $realip = $_SERVER["REMOTE_ADDR"];
        }
    }
    else
    {
        if (getenv('HTTP_X_FORWARDED_FOR'))
        {
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif (getenv('HTTP_CLIENT_IP'))
        {
            $realip = getenv('HTTP_CLIENT_IP');
        }
        else
        {
            $realip = getenv('REMOTE_ADDR');
        }
    }
    return $realip;
}
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
发生异常时include产生警告require产生致命错误
只包含一次 include_once,require_once
17、如何修改SESSION的生存时间(1分).
session_set_cookie_params(生存秒数);
session_set_cookie_params();
18、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
file_get_contents();
file_get_contents($url)
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
401 未授权访问Unauthorized;header('HTTP/1.1 404 Not Found');
20、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
必须顶格。
跟起始的一样,且要换行顶格,后面加上分号
21、谈谈asp,php,jsp的优缺点(1分)——此题禁止在本帖和版本讨论。
21、谈谈对mvc的认识(1分)
视图模型控制器
-------------------------------------------------------------------
22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
select * from `members` order by `posts` limit 10;
select members.username from members order by posts DESC limit 10
23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
传值是传递堆里一个值的拷贝,传引用是传递栈里一个指向某值的符号的拷贝。改变原值传引用,不改变就传值。
24. 在PHP中error_reporting这个函数有什么作用? (1分)
设定错误讯息回报的等级
25. 请写一个函数验证电子邮件的格式是否正确 (2分)
function isEmail($str)
{
return ereg('^[-_\.a-zA-Z0-9]+@[-a-zA-Z0-9]+\.[-\.a-zA-Z0-9]+$', $str);
}
$ismail= (preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $Email))?   'Yse' : 'No';
26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
REQUEST_URI
echo $_SERVER['scrīpt_FILENAME']."?".$_SERVER['QUERY_STRING'];
27.如何修改SESSION的生存时间. (1分)
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
alert(),prompt(),confirm()-- focus()
22、JS的转向函数是?怎么引入一个外部JS文件?(2分)
target.location.href
23、foo()和@foo()之间有什么区别?(1分)
@可以屏蔽错误!
24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
class myclass{};
25、如何实例化一个名为”myclass”的对象?(1分)
$newClass = new myclass();
26、你如何访问和设置一个类的属性? (2分)
通过-〉
$newClass = new myclass();
$testVar=$newClass->test;
$newClass->test="my string";
27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
mysql_fetch_row -- 从结果集中取得一行作为枚举数组
mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
--------------------------------------------------------------------
28、GD库是做什么用的? (1分)GD库主要是用来做图片处理用的。
29、指出一些在PHP输入一段HTML代码的办法。(1分)
echo "
";
print("
");
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)(c)
(a) fget()   (b) file_open() (c) fopen() (d) open_file()
31、下面哪个选项没有将 john 添加到users 数组中? (1分)(c)(d)
(a) $users[] = ‘john’;
(b) array_add($users,’john’);
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;
32、下面的程序会输入是否?(1分)
  $num = 10;
  function multiply(){
      $num = $num * 10;
  }
  multiply();
  echo $num;
?>
否,局部变量
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
请根据上面的题目完成代码:
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$result = mysql_query('select * from `user` where `name`=\'张三\'');
while ($row = mysql_fetch_array($result)) {
echo 'name:'.$row['name'].'tel:'.$row['tel'].'
';
}
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$result=mysql_query("select * from User where Name='张三'");
while($row=mysql_fetch_array($result))
{
echo $row['Name'].$row['Tel'].$row['Content'].$row['Date'];
echo "
";
}
34、如何使用下面的类,并解释下面什么意思?(3)
class test{
function Get_test($num){
  $num=md5(md5($num)."En");
  return $num;
}
}
双重md5加密
$testObject = new test();
$encryption = $testObject->Get_test("xiaotian_ls");
----------------------------------------------------------------------------
35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
表名User
Name Tel Content   Date
张三 13333663366   大专毕业 2006-10-11
张三 13612312331   本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
  (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
  (b) 请用sql语句把张三的时间更新成为当前系统时间
  (c) 请写出删除名为张四的全部记录
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中毕业','2007-05-06')
(b) 请用sql语句把张三的时间更新成为当前系统时间
UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='张三'
(c) 请写出删除名为张四的全部记录
DELETE FROM User WHERE Name='张四'
36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
38、写出以下程序的输出结果 (1分)   4
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
-----------------------------------------------------------------------------
40、取得查询结果集总数的函数是?(1分)count()
41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)print $arr[0];
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
print $arr[0].","$arr[1].","$arr[2] ;//^_^
$arr1 = implode(",",$arr);
43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
print substr($a, 0, 1);
44、PHP可以和sql server/oracle等数据库连接吗?(1分)
可以
45、请写出PHP5权限控制修饰符(3分)
46、请写出php5的构造函数和析构函数(2分)
------------------------------------------------------------------------------
47、以下请用PHPMYADMIN完成
(一)创建新闻发布系统,表名为message有如下字段 (3分)
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
Create table message (id int auto_increment primary key,title varchar(50) not null,content text not null,category_id smallint default 1,hits int not null)
(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
(三)上述内容管理系统,表category保存分类信息,字段如下 (3分)
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
下面是另一个
入门级PHP程序员面试题(总100分/47题)
PHP新手面试题总100分
简述题(50分)
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
2、echo(),print(),print_r()的区别(3分)
3、能够使HTML和PHP分离开使用的模板(1分)
5、使用哪些工具进行版本控制?(1分)
6、如何实现字符串翻转?(3分)
---------------------------------------------------------------
7、优化MYSQL数据库的方法。(4分,多写多得)
8、PHP的意思(送1分)
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
10、实现中文字串截取无乱码的方法。(3分)
---------------------------------------------------------------
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
13、请简单阐述您最得意的开发之作(4分)
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
-----------------------------------------------------------------
15、用PHP写出显示客户端IP与服务器IP的代码1分)
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
17、如何修改SESSION的生存时间(1分).
18、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
-------------------------------------------------------------------
20.如何修改SESSION的生存时间. (1分)
--------------------------------------------------------------------
21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
22、JS的转向函数是?怎么引入一个外部JS文件?(2分)
23、foo()和@foo()之间有什么区别?(1分)
24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
25、如何实例化一个名为”myclass”的对象?(1分)
26、你如何访问和设置一个类的属性? (2分)
27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
--------------------------------------------------------------------
28、GD库是做什么用的? (1分)
29、指出一些在PHP输入一段HTML代码的办法。(1分)
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)
   (a) fget() (b) file_open()   (c) fopen()   (d) open_file()
31、下面哪个选项没有将 john 添加到users 数组中? (1分)
   (a) $users[] = ‘john’;
   (b) array_add($users,’john’);
   (c) array_push($users,‘john’);
   (d) $users ||= ‘john’;
32、下面的程序会输入是否?(1分)
     $num = 10;
     function multiply(){
       $num = $num * 10;
     }
     multiply();
     echo $num;
   ?>
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
请根据上面的题目完成代码:
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
34、如何使用下面的类,并解释下面什么意思?(3)
class test{
  function Get_test($num){
     $num=md5(md5($num)."En");
     return $num;
  }
}
----------------------------------------------------------------------------
35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
  表名User
  Name Tel Content Date
  张三 13333663366 大专毕业 2006-10-11
  张三 13612312331 本科毕业 2006-10-15
  张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
(b) 请用sql语句把张三的时间更新成为当前系统时间
(c) 请写出删除名为张四的全部记录
36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
38、写出以下程序的输出结果 (1分)
   $b=201;
   $c=40;
   $a=$b>$c?4:5;
   echo $a;
  ?>
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
-----------------------------------------------------------------------------
40、取得查询结果集总数的函数是?(1分)
41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
44、PHP可以和sql server/oracle等数据库连接吗?(1分)
45、请写出PHP5权限控制修饰符(3分)
46、请写出php5的构造函数和析构函数(2分)
------------------------------------------------------------------------------
47、以下请用PHPMYADMIN完成
(一)创建新闻发布系统,表名为message有如下字段 (3分)
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
(三)上述内容管理系统,表category保存分类信息,字段如下 (3分)
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
UID3 帖子472 精华3 积分4351 阅读权限100 在线时间76 小时 注册时间2007-11-19 最后登录2008-8-7 查看详细资料
TOP
lyno
不為外人道
版主
个人空间 发短消息 加为好友 当前离线 2# 发表于 2007-12-21 15:51 只看该作者
这是我从其他网站的转来的,自我感觉用了三年的php对其中的某些问题还无法立即作答.
另问题好像不止是47个,多了三个,看到原作者也没有仔细做过.^_^,以也问题我也作出回答
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
跟起始的一样,且结束标志前也要一个换行,后面加上分号
13、谈谈asp,php,jsp的优缺点(1分)
ASP、JSP、PHP 三种技术
14、谈谈对mvc的认识(1分)
MVC (Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,具体的功能如下:
模型(Model): 业务逻辑层。实现具体的业务逻辑、状态管理的功能。
视图(View):表示层。就是与用户实现交互的页面,通常实现数据的输入和输出功能。
控制器(Controller):控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。
----------------------------------------------------
15、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
select members.username from members order by posts DESC limit 10
16. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
17. 在PHP中error_reporting这个函数有什么作用? (1分)
用来配置错误信息回报的等级
18. 请写一个函数验证电子邮件的格式是否正确 (2分)复制内容到剪贴板代码:
//if the email address is valid, return true,else return false
function validateEmail($email)
{
if(eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$',$email) ){
return true;
}else{
return false;
}
}19. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
echo $_SERVER['SCRIPT_FILENAME']."?".$_SERVER['QUERY_STRING'];
php测试题目二2009-02-07 15:16试题答案
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
答:date('Y-m-d H:i:s',time()-24*60*60);
echo date('Y-m-d H:i:s', strtotime('-1 day'));
2、echo(),print(),print_r()的区别(3分)
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
echo -- 输出一个或者多个字符串
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)
3、能够使HTML和PHP分离开使用的模板(1分)
答:smarty,Heyes Template Class等
5、使用哪些工具进行版本控制?(1分)
答:VS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
6、如何实现字符串翻转?(3分)
$str="admin";
strrev($str);
7、优化MYSQL数据库的方法。(4分,多写多得)
(1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
(2).使用连接(JOIN)来代替子查询(Sub-Queries)
(3).使用联合(UNION)来代替手动创建的临时表
(4).尽量少使用 LIKE 关键字和通配符
(5).使用事务和外键
参见 优化MySQL数据库性能的好办法
8、PHP的意思(送1分)
PHP 即Personal home page,也是Hypertext Preprocessor,是一种服务器端的,嵌入HTML的脚本语言。PHP区别其他像客户端Javascript的地方是它的代码在服务器端执行
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
MYSQL取得当前时间的函数是NOW(),格式化日期的函数是DATE_FORMAT(date,format)
10、实现中文字串截取无乱码的方法。(3分)
mb_substr()就可实现,
在实际使用时,一般用到下面的函数
中文字串在不同的编码(utf8,big5,gb2312)中截取方法也不一样复制内容到剪贴板代码:
//截取BIG5中文字串
function SubChstrs ( $title , $len="", $start=0 , $magic = true )
{
$length = 0;
if ( $len == "" ) $len = strlen ( $title );
if ($start > 0)
{
$cnum = 0;
for ( $i = 0 ; $i < $start ; $i++ )
{
  if ( ord ( substr ( $title , $i , 1 ) ) >= 128) $cnum ++;
}
if ( $cnum % 2 != 0 ) $start --;
unset ( $cnum );
}
if ( strlen ( $title ) <= $len ) return substr ( $title , $start , $len );
$alen = 0;
$blen = 0;
$realnum = 0;
for ( $i = $start ; $i < strlen ( $title ) ; $i ++)
{
$ctype = 0;
$cstep = 0;
$cur = substr($title,$i,1);
if($cur == "&")
{
  if(substr($title,$i,4) == "<")<>
  {
   $cstep = 4;
   $length += 4;
   $i += 3;
   $realnum ++;
   if($magic)
   {
    $alen ++;
   }
  }else if(substr($title,$i,4) == ">")
  {
   $cstep = 4;
   $length += 4;
   $i += 3;
   $realnum ++;
   if($magic)
   {
    $alen ++;
   }
  }else if(substr($title,$i,5) == "&")
  {
   $cstep = 5;
   $length += 5;
   $i += 4;
   $realnum ++;
   if($magic)
   {
    $alen ++;
   }
  }else if(substr($title,$i,6) == """)
  {
   $cstep = 6;
   $length += 6;
   $i += 5;
   $realnum ++;
   if($magic)
   {
    $alen ++;
   }
  }else if(substr($title,$i,6) == "'")
  {
   $cstep = 6;
   $length += 6;
   $i += 5;
   $realnum ++;
   if($magic)
   {
    $alen ++;
   }
  }else if(preg_match("/&#(\d+);/i",substr($title,$i,8),$match))
  {
   $cstep = strlen($match[0]);
   $length += strlen($match[0]);
   $i += strlen($match[0])-1;
   $realnum ++;
   if($magic)
   {
    $blen ++;
    $ctype = 1;
   }
  }
}else
{
  if(ord($cur)>=128)
  {
   $cstep = 2;
   $length += 2;
   $i += 1;
   $realnum ++;
   if($magic)
   {
    $blen ++;
    $ctype = 1;
   }
  }else
  {
   $cstep = 1;
   $length +=1;
   $realnum ++;
   if($magic)
   {
    $alen++;
   }
  }
}
if($magic)
{
  if(($blen*2+$alen) == ($len*2)) break;
  if(($blen*2+$alen) == ($len*2+1))
  {
   if($ctype == 1)
   {
    $length -= $cstep;
    break;
   }else
   {
    break;
   }
  }
}else
{
  if($realnum == $len) break;
}
}
unset($cur);
unset($alen);
unset($blen);
unset($realnum);
unset($ctype);
unset($cstep);
$result = substr($title,$start,$length);
if (strlen($title) > $length)
{
$result .= '...';
}
return $result;
}复制内容到剪贴板代码:
//截取UTF-8中文字串
function Substrs($string, $sublen, $start = 0, $code = 'UTF-8')
{
$string= strip_tags($string);
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i<$strlen; $i++)
{
  if($i>=$start && $i<($start+$sublen))<>
  {
   if(ord(substr($string, $i, 1))>129) $tmpstr.= substr($string, $i, 2);
   else $tmpstr.= substr($string, $i, 1);
  }
  if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
return $tmpstr;
}
}
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
用过,SVN,具体请参阅版本控制SVN简介
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
模板引擎SMARTY
13、请简单阐述您最得意的开发之作(4分)
我在工作期间开发了大量的网站,其中有:http://www.m-zone.com.tw/ 倚天M-Zone行动玩家,目前完成行动写真,行动手记,和随身地图。网站采用三层架构进行开发。网站有功能相对比较强大用到多种技术,包括用到XML,Ajax ,图像处理,解压缩包等。
等。
http://www.sooostar.com/
http://bbs.sooostar.com/
http://search.sooostar.com/
搜明星网站,搜明星部分用ASP开发,论坛部分是采用Discuz!论坛,我论坛进行了大量的修改,以满足客户的需求,比如新增了家簇部分,一个可以加入多个家簇,新增了贴手榜程式,以Web Service技术实现搜明星主站与论坛之间的相互调用(主站与论坛是放在不同的主机),等等。图影搜寻部分也是用ASP开发,通过这一部分的开发,对搜索有一定的认识,了解和研究。
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件。
第七,使用缓存技术。
第八,使用生成静态页面。
15、用PHP写出显示客户端IP与服务器IP的代码(1分)复制内容到剪贴板代码:
// $onlineip即为客户端IP
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}服务器IP的代码
$_SERVER["LOCAL_ADDR"] (要高点的php4)
老的php应该是
$HTTP_SERVER_VARS["LOCAL_ADDR"];
以下好像也可以
echo(gethostbyname($SERVER_NAME));
echo $HTTP_SERVER_VARS["SERVER_ADDR"];
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
include() 语句包含并运行指定文件。
以下文档也适用于 require()。这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的 include_path。注意在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。
为避免多次包含同一文件可用include_once() 代替include();用require_once()代替require().
17、如何修改SESSION的生存时间(1分).
修改php.ini文件
session.gc_maxlifetime,与session.cookie_lifetime一致,同时确认session.use_cookies = 1。
也可以用程式控制
$savePath = "./session_save_dir/";
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
18、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
有多种方式:
$data = file_get_contents('http://www.phpres.com/index.html') ;
//$data是string类型
$dataarray = file('http://www.phpres.com/index.html') ;
//$dataarray 是array类型
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
未授权(Unauthorized)
Header("http/1.0 403 Forbidden");
21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
alert(),prompt(),confirm()
focus()
22、JS的转向函数是?怎么引入一个外部JS文件?(2分)
window.location.href
< scrīpt src=""/ >
23、foo()和@foo()之间有什么区别?(1分)
foo();调用一个函数
@foo();调用一个函数,如果调用有错误,则忽略
24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
class myclass{}
25、如何实例化一个名为”myclass”的对象?(1分)
$newmyclass = new myclass();
26、你如何访问和设置一个类的属性? (2分)
通过-〉,例如
$newmyclass = new myclass();
$temp=$newmyclass->testvalue;
$newmyclass->testvalue="a";
27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
mysql_fetch_row — 从结果集中取得一行作为枚举数组,返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
28、GD库是做什么用的? (1分)
GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
29、指出一些在PHP输入一段HTML代码的办法。(1分)
print("
");
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)
(c)
31、下面哪个选项没有将 john 添加到users 数组中? (1分) (c)(d)
32、下面的程序会输入是否?(1分)
否,局部变量,可修改如下
     $num = 10;
     function multiply(){
      global $num;
       $num = $num * 10;
     }
     multiply();
     echo $num;
   ?>
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
请根据上面的题目完成代码:
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$result=mysql_query("select * from User where Name='张三'");
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
   echo $row['Name'].$row['Tel'].$row['Content'].$row['Date'];
   echo "
";
}
34、如何使用下面的类,并解释下面什么意思?(3)
class test{
  function Get_test($num){
     $num=md5(md5($num)."En");
     return $num;
  }
}
$testobj = new test();
$testobj->Get_test(5);
用md5方式双重加密
35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
  表名User
  Name Tel Content Date
  张三 13333663366 大专毕业 2006-10-11
  张三 13612312331 本科毕业 2006-10-15
  张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
  INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中毕业','2007-05-06')
(b) 请用sql语句把张三的时间更新成为当前系统时间
  UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='张三'
(c) 请写出删除名为张四的全部记录
  DELETE FROM User WHERE Name='张四'
36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
varchar和char有什么区别(2分)
int 数值类型 char 固定长度字符串 varchar 可变长字符串 datetime 日期时间型 text 字符字符串
char列的长度固定为创建表时声明的长度.varchar列中的值为可变长字符串.
37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
AUTO_INCREMENT
38、写出以下程序的输出结果 (1分)
   $b=201;
   $c=40;
   $a=$b>$c?4:5;
   echo $a;
  ?>
  4
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
isset() empty()
40、取得查询结果集总数的函数是?(1分)
ccount — 计算数组中的单元数目或对象中的属性个数
41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)
echo $arr[0];
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
$str = join(',',$arr);
echo $str;
43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
echo $a{0};
44、PHP可以和sql server/oracle等数据库连接吗?(1分)
当然可以
45、请写出PHP5权限控制修饰符(3分)
private protected public
46、请写出php5的构造函数和析构函数(2分)
__construct __destruct
47、以下请用PHPMYADMIN完成
CREATE TABLE 'message'(
   'id' int(11) NOT NULL auto_increment,
   'title' varchar(200) default NULL,
   'content' blob,
   'category_id' int(11) default NULL,
   'hits' int(11) default NULL,
   PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8
SELECT message.id id,message.title title,IF(message.`hits` IS NULL,0,message.`hits`) hits,IF(comment.`id` is NULL,0,count(*)) number
FROM message LEFT JOIN comment ON message.id=comment.id
GROUP BY message.`id`
function categoryList()
{
   $result=mysql_query("select category_id,categroy_name from category")
           or die("Invalid query: " . mysql_error());
   print("
   while($rowArray=mysql_fetch_array($result))
   {
       print("\n");
   }
   print("");
}

分享到:
  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!