PHP题集锦

        1、PHP的意思?

   答
:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页

   2、谈谈asp,php,jsp的优缺点?

   答
:ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script)作为自己的开发语言。

  PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

  JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。

  三者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成Servlet 并由Java 虚拟机解释执行,这种编译操作仅在对JSP 页面的第一次请求时发生。在ASP 、PHP、JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML 页面只依赖于Web 服务器,而ASP 、PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

   3、谈谈对mvc的认识?

   答
:由模型( Model),视图( View),控制器( Controller)完成的应用程序

  由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;

   4、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)

   :SELECT * FROM `members` ORDER BY posts DESC limit 0,10;

   5、GD库是做什么用的?

   答
:gd库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图片。

  在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

   6、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?

   答
:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串

  char的场地固定为创建表设置的长度,varchar为可变长度的字符

   7、写出以下程序的输出结果?

  
<? Php

  $b=201;

  $c=40;

   $a=$b>$c?4:5;

  
echo $a;

  ?>

   :4

   8、检测一个变量是否有设置的函数是?是否为空的函数是?

   答
: isset($str), empty($str);

   9、取得查询结果集总数的函数是?

   答
:mysql_num_rows($result);

   10、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值?

   答
:echo $arr[0];

   11、PHP可以和sql server/oracle等数据库连接吗?

   答
:可以

   12、请写出PHP5权限控制修饰符?

   答
:public(公共),private(私用),protected(继承)

   13、请写出php5的构造函数和析构函数?

   答
: 构造函数:官方称自定义函数

  析构函数:垃圾回收函数(__destruct)

   14、表单中get与post提交方法的区别?

   答
:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

   15、session与cookie的区别?

   答
:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续访问一个页面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

  两者都可通过时间来设置时间长短

   16、用PHP打印出前一天的时间格式是2010-7-3 12:28:21?

   答
:echo date('Y-m-d H:i:s', strtotime('-1 days'));

   17、echo(),print(),print_r()的区别?

   答
:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

  print() 只能打印出简单类型变量的值(如int,string)

  print_r() 可以打印出复杂类型变量的值(如数组,对象)

  echo 输出一个或者多个字符串

   18、能够使HTML和PHP分离开使用的模板?

   答
:Smarty, TinyButStrong,XTemplate, Savant,Template Lite, Dwoo, phemplate

   19、使用哪些工具进行版本控制?

   答
:cvs,svn,vss;

   20、如何实现字符串翻转?

   答
:echo strrev($a); //strrev --- 颠倒字符串

   21、优化查询语句?

  
a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作

  例子1:

  SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)

  SELECT * FROM order WHERE orderDate<" 2008-01-01";(快)

  例子2:

  SELECT * FROM order WHERE addtime/7<24;(慢)

  SELECT * FROM order WHERE addtime<24*7;(快)

  例子3:

  SELECT * FROM order WHERE title like "%good%";

  SELECT * FROM order WHERE title>="good" and name<"good";

   22、对于大流量的网站,您采用什么样的方法来解决访问量问题?

   答
:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,

  程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量

   23、用PHP写出显示客户端IP与服务器IP的代码?

   答
:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');//getenv取得开发环境变量

  打印服务器IP:echo gethostbyname("www.bolaiwu.com") // gethostbyname取得IP地址函数

   24、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

   答
:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require

  include->include有返回值,而require没有(可能因为如此require的速度比include快)  

        include引入的文件出错,提示信息并继续执行

        Require引入的文件出错,提示信息停止继续执行

        可用include_once()和require_once()代替

   25、如何修改SESSION的生存时间?.

   答:
方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache

  方法2:$savePath = "./session_save_dir/";

  $lifeTime = 小时* 秒;

  session_save_path($savePath);

  session_set_cookie_params($lifeTime);

  session_start();

  方法3:setcookie() and session_set_cookie_params($lifeTime);

   26、有一个网页地址, 比如PHP开发资源网主页: http://www.php100.com/index.html,如何得到它的内容?

   答
:方法1(对于PHP5及更高版本):

  $readcontents = fopen("http://www.php100.com/index.html", "rb");

  $contents = stream_get_contents($readcontents);//stream_get_contents 取得字符串赋值给$contents

  fclose($readcontents);

  echo $contents; 方法2: echo file_get_contents("http://www.php100.com/index.htm l"); //file_get_contents() 函数把整个文件读入一个字符串中。

   27、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用header 函数,其语句为?

   答
:状态401代表未被授权,header("Location:www.xxx.php");

   28、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?

   答
:heredoc的语法是用"<<<"加上自己定义成对的标签,在标签范围内的文字视为一个字串

  例子:

  $str = <<<SHOW

  my name is Jiang Qihui!

  SHOW;

   29、foo()和@foo()之间有什么区别?

   答
:@foo()控制错误输出

   30、如何声明一个名为”myclass”的没有方法和属性的类?

   答
:class myclass{ }

   31、如何实例化一个名为”myclass”的对象?

   答
:new myclass()

   32、你如何访问和设置一个类的属性?

   答
:$object = new myclass();

  $newstr = $object->test;

  $object->test = "info";

   33、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?

   答
:mysql_fetch_row是从结果集取出1行数组,作为枚举

  mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得

   34、下面哪个函数可以打开一个文件,以对文件进行读和写操作?

  (a) fget() (b) file_open() (c) fopen() (d) open_file()

  答:c

   35、下面的程序会输入是否?

  
<?php

  $num = 10;

  function multiply(){

  $num = $num * 10;

  }

  multiply();

  echo $num;

  ?>

  否,局部变量

   36、JS表单弹出对话框函数是?获得输入焦点函数是?

  答:弹出对话框: alert(),prompt(),confirm()

  获得输入焦点focus()

   37、JS的转向函数是?怎么引入一个外部JS文件?

  
答:window.location.href;

  <script type="text/javascript" src="js/js_function.js"></script>

   38、$a = 'abcdef'; 请取出$a的值并打印出第一个字母?

  
答:echo $a{0} 或echo substr($a,0,1)

   39、优化MYSQL数据库的方法。

  
(1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。

  (2).使用连接(JOIN)来代替子查询(Sub-Queries)

  (3).尽量少使用LIKE 关键字和通配符

   40、如何使用下面的类,并解释下面什么意思?

  
class test{

  function Get_test($num){

  $num=md5(md5($num)."En");

  return $num;

  } }

  双重md5加密

  $testObject = new test();

  $encryption = $testObject->Get_test("xiaotian_ls");

   41 、请举例说明在你的开发过程中用什么方法来加快页面的加载速

  
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦

   42.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):

  
<?php

  $script="以下内容不显示:<script language='javascript'>alert('cc');</script>";

  echo preg_replace("/<script[^>].*?>.*?</script>/si", "替换内容", $script);

  ?>

   43.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

  答:LoadModule

  php5_module

  "c:/php/php5apache2.dll";AddType application/x-httpd-php .php

   44.sort()、asort()、和ksort() 有什么分别?它们分别在什么情况下使用?

  
sort()

  根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。

  asort()

  与sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。

  ksort()

  根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

   45.“===”是什么?试举一个“==”是真但“===”是假的例子。

  
“===”是既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和strrpos() 便是其中两个例子。

  if (strpos("abc", "a") == true){ // 这部分永不会被执行,因为"a" 的位置是0,换算成布尔值“假”}if (strpos("abc", "a") === true){ // 这部份会被执行,因为“===”保证函式strpos() 的送回值不会换算成布尔值.}

   46 、写出以下程序的输出结果

  
<?php $str=“cd”;

  $$str=“hotdog”;

  $$str.=“ok”;

  echo $cd;

  ?>

  答案:hotdogok

   47 、给你三个数,写程序求出其最大值。

  
$var1=1;

  $var2=7;

  $var3=8;

  $max=$var1>$var2?$var1:$var2;

  $max=$max>$var3?$max:$var3;

  echo $max;

   48 写出将一个选择2号选项的ip为127.0.0.1的用户在当前时间的投票记录到数据库的SQL

  
答:insert into poll (ip,time,iid) values('127.0.0.1',now(),2);

   49. 请写一个函数验证电子邮件的格式是否正确?

  
答:function checkEmail($email)

  {

  $pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z 0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";

  return preg_match($pregEmail,$email);

  }

   50 、有一表menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来

  
<html>

  <head><title>这里是标题</title></head>

  <body>

  <form>

  <?php

  function GenerateMenu($id=0,$str="")

  {

  $result=mysql_query("select mainmenu,url,submenu from menu where mainmenu=$id");

  while($row=mysql_fetch_array($result))

  {

  echo $str.$row["url"]."<br />";

  GenerateMenu($row["submenu"],$str."--");

  }

  mysql_free_result($result);

  }

  $link=mysql_connect("localhost","root","");

  mysql_select_db("phpinterview");

  GenerateMenu();

  mysql_close($link)

  ?>

   51、写出SQL语句的格式: 插入 ,更新 ,删除

  
表名User

  Name Tel Content Date

  张三13333663366 大专毕业2006-10-11

  张三13612312331 本科毕业2006-10-15

  张四021-55665566 中专毕业2006-10-15

  (a) 有一新记录(小王13254748547 高中毕业2007-05-06)请用SQL语句新增至表中

  mysql_query("INSERT INTO `user` (name,tel,content,date) VALUES

  ('小王','13254748547','高中毕业','2007-05-06')")

  (b) 请用sql语句把张三的时间更新成为当前系统时间

  $nowDate = date("Ymd");

  mysql_query("UPDATE `user` SET date='".$nowDate."' WHERE name='张山'");

  (c) 请写出删除名为张四的全部记录

  mysql_query("DELETE FROM `user` WHERE name='张四'");
68171
68172
68173
68174
68175
68176
68177
68178
68179
68180


             52. php求上一个月和下一个月一号是星期几 (WS)
                  //上个月的1号为星期几
                  $lastMon = date('Y-m', strtotime('-1 months'))."-1";
                   $weekarray = array("日","一","二","三","四","五","六");
                   $lastDay = date('w',strtotime($lastMon));    
                  echo "lastDay:".$lastDay."<br/>";
                 echo "上一个月的1号:".$lastMon."<br/>";
                 echo "星期".$weekarray[$lastDay];    

                 //下个月的1号为星期几
                  $lastMon = date('Y-m', strtotime('1 months'))."-1";
                   $weekarray = array("日","一","二","三","四","五","六");
                   $lastDay = date('w',strtotime($lastMon));    
                  echo "lastDay:".$lastDay."<br/>";
                 echo "下一个月的1号:".$lastMon."<br/>";
                 echo "星期".$weekarray[$lastDay];    
            
         53. json和xml格式的区别(WS)
       答:json(javascript object notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于javascript programming language standard ecma-262 3rd edition - december 1999的一个子集。 json采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括c, c++, c#, java, javascript, perl, python等)。 这些特性使json成为理想的数据交换语言。
     xml 即可扩展标记语言(extensible markup language),是一种平台无关的表示数据的方法。 简单地说,使用 xml 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 xml 文档。其原因是,xml 与 html 一样,都是建立在相同的基于标记技术基础之上。


 答:json(javascript object notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于javascript programming language standard ecma-262 3rd edition - december 1999的一个子集。 json采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括c, c++, c#, java, javascript, perl, python等)。 这些特性使json成为理想的数据交换语言。
     xml 即可扩展标记语言(extensible markup language),是一种平台无关的表示数据的方法。 简单地说,使用 xml 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 xml 文档。其原因是,xml 与 html 一样,都是建立在相同的基于标记技术基础之上。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值