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快)

注意:包含文件不存在或者语法错误的时候require是致命的,include不是



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.html”);

// 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;





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="以下内容不显示:alert(‘cc’);";

echo preg_replace("/].*?>.*?/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-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";

return preg_match($pregEmail,$email);

}



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









<?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"]."

";

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='张四'");

PHP基础面试题的更多相关文章

  1. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  2. [Unity3D]上海某大型游戏公司的基础面试题

    一个小老乡跟我聊到去上海某大公司的基础面试题,面试结果不尽如人意,但还是分享了下面试的试题,刚刚第一次录制视频,给某人讲课,我感觉讲的还算比较耐心,但发现一些新手入门学习的弊端,可能是很普遍的现象,这 ...

  3. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  4. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  5. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  6. 几道php基础面试题

    前言 昨晚实验室一师弟在微薄上@我,给我发了几道php的基础面试题,这里把我写的答案贴出来 题目 (1)写一个函数获取URL的文件后缀,例如“http://www.feiyan.info/test.p ...

  7. Java基础机试题

    package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert {   ...

  8. 前端基础面试题(JS部分)

    1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.und ...

  9. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  10. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...

随机推荐

  1. Web项目使用Oracle.DataAccess.dll 类库连接oracle数据库

    首先我用的工具是oracle 32位免安装版+Oracle.DataAccess.dll 32位  文件版本4.121.1.0+vs2013 +win7 64位 Oracle.DataAccess.d ...

  2. 纯html页面之间传参

    //页面引入//传参方法,可解析url参数 (function($){ $.getUrlParam = function(name) { var reg = new RegExp("(^|& ...

  3. js下载项目中的文件

    项目中有一个连接是下载视频插件,放到服务器上,不能io输出,所以指定地址直接下载 <div id="objInfo"> <jsp:include page=&qu ...

  4. java中cookie存取值

    cookie存值: Cookie userCookie=new Cookie("loginInfo",loginInfo); userCookie.setMaxAge(30*24* ...

  5. 原生js焦点轮播图

    原生js焦点轮播图主要注意这几点: 1.前后按钮实现切换,同时注意辅助图2.中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index3.间隔调用与无限轮播.4.注意在动画时 ...

  6. SQUID常用命令

    Squid日常维护过程中,常用的一些命令: 1,初始化你在 squid.conf 里配置的 cache 目录squid -z如果有错误提示,请检查你的 cache目录的权限.可以使用使用更改目录权限: ...

  7. R语言环境安装与基本使用

    R语言安装包可以从这个地址选择合适的URL去下载:https://cran.r-project.org/mirrors.html,这里使用这个https://mirrors.tuna.tsinghua ...

  8. 手把手教你玩转nginx负载均衡(一)----使用vitualBox创建虚拟机

    引言 作为一个web程序员,有时候需要想尽办法来利用有限的资源来产生最大程度的负载,除了提高硬件配置,增加带宽之外,CDN加速,DNS加速,缓存,还可以利用反向代理.但是要说反向代理,就不的不说ngi ...

  9. 【Java EE 学习 71 下】【数据采集系统第三天】【分析答案实体】【删除问题】【删除页面】【删除调查】【清除调查】【打开/关闭调查】

    一.分析答案实体 分析答案实体主要涉及到的还是设计上的问题,技术点几乎是没有的.首先需要确定一下答案的格式才能最终确定答案实体中需要有哪些属性. 答案格式的设计是十分重要的,现设计格式如下: 在表单中 ...

  10. XSS之xssprotect(转)

    参考资料 1 跨网站脚本 http://zh.wikipedia.org/wiki/XSS 2 http://code.google.com/p/xssprotect/ 一 跨网站脚本介绍      ...