很有用的PHP笔试题系列二
1.如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?
Gethostbyname()
echo $_SERVER ["PHP_SELF"];
echo $_SERVER ["SERVER_ADDR"];
2. 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
$begin=strtotime(“2007-2-5″);
$end=strtotime(“2007-3-6″);
echo ($end-$begin)/(24*3600);
2. 给一个变量赋值为0123,但是输出该变量的值总是为其他数字,请问这是什么问题?
PHP 解释器会把以0开始的数字当做是八进制的,所以它的值会变成八进制的。
3.PHP里面如何定义一个常量(constant)?
通过define()指令,例如:define(”MYCONSTANT”, 100)
4.如何对一个变量进行值传递?
可以像C++那样,在变量的前面加上&, 例如:$a = &$b
5.在PHP里面可以对string “10″和整型 11进行比较吗?
可以,PHP内部实现会把所有东西转换成整型,所以数字10和11可以进行比较
6.在什么情况下需要用endif 来结束条件语句?
当if语句后面跟的是冒号”:”而不是大括号{时,需要用endif来结束条件语句
1.表单中 get与post提交方法的区别?
1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
3. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
get安全性非常低,post安全性较高。
3. 数据库中的事务是什么?
事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
7、优化MYSQL数据库的方法。(4分,多写多得)
1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如’省份,性别’,最好设置为ENUM
2、使用连接(JOIN)来代替子查询:
3、使用联合(UNION)来代替手动创建的临时表
4、事务处理:
5、锁定表,优化事务处理:
6、使用外键,优化锁定表
7、建立索引:
a.格式:
(普通索引)->
创建:CREATE INDEX <索引名> ON tablename (索引字段)
修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)
创表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))
(唯一索引)->
创建:CREATE UNIQUE <索引名> ON tablename (索引字段)
修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)
创表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))
(主键)->
它是唯一索引,一般在创建表是建立,格式为:
CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])
8、优化查询语句
PHP的意思(送1分)
PHP Hypertext Preprocessor是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
now(),date_format()
10、实现中文字串截取无乱码的方法。(3分)
functionGBsubstr($string, $start, $length) {
if(strlen($string)>$length){
$str=null;
$len=$start+$length;
for($i=$start;$i<$len;$i++){
if(ord(substr($string,$i,1))>0xa0){
$str.=substr($string,$i,2);
$i++;
}else{
$str.=substr($string,$i,1);
}
}
return$str.’…’;
}else{
return$string;
}
}
对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
heredoc的语法是用”<<<"加上自己定义成对的标签,在标签范围內的文字视为一个字符串
例子:
$str = << my name is Jiang Qihui!
SHOW;
13、谈谈asp,php,jsp的优缺点(1分)
ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和运
行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script
)作为自己的开发语言。
PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法
, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数
据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.ne
t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--
脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav
a 上的不凡造诣,将Java 从Java 应用程序和 Java Applet 之外,又有新的硕果,就是Js
p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点
程序。
三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。
但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的
第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式
,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH
P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到
HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术
,客户端浏览器不需要任何附加的软件支持。
写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
SELECT * FROM `members` ORDER BYposts DESC limit 0,10;
简述如何得到当前执行脚本路径,包括所得到参数。(2分)
echo $_SERVER[‘REQUEST_URI’];
21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)
弹出对话框: alert(),prompt(),confirm()
获得输入焦点 focus()
22、JS的转向函数是?怎么引入一个外部JS文件?(2分)
window.location.href,
<script type="text/javascript"src="hello.js"></script>
23、foo()和@foo()之间有什么区别?(1分)
@foo()控制错误输出
24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)
class myclass{ }
25、如何实例化一个名为”myclass”的对象?
new myclass()
26、你如何访问和设置一个类的属性? (2分)
$object = new myclass();
$newstr = $object->test;
$object->test = "info";
28、GD库是做什么用的? (1分)
gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
29、指出一些在PHP输入一段HTML代码的办法。(1分)
echo "aaa";
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?[ c ]
(a) fget() (b)file_open() (c) fopen() (d) open_file()
32、下面的程序会输入是否?(1分)
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
?>
输出:10
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名User
NameTel 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($rs =mysql_fetch_array($result)){
echo$rs["tel"].$rs["content"].$rs["date"];
}
PDO写法:
Try{
$dsn= "mysql:host=localhost;dbname=user";
$pdo= new PDO($dsn,'root','123456');
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo->query('setnames utf8');
$sql= "SELECT * FROM user WHERE name='张三'";
$result= $pdo->query($sql);
Foreach($resultas $v){
Echo$v['tel'].$v['content'].$v['date'];
}
}catch(PDOException$e){
Echo$e->getCode().':'.$e->getMessage();
}
Mysqli写法:
$mysqli = newmysqli('localhost','root','123456','user');
If(mysqli_connect_errno()){
Die('连接数据库失败,'.mysqli_connect_error());
}
$mysqli->set_charset('utf8');
$result = $mysqli->query("SELECT* FROM user WHERE name='张三'");
If($result &&$result->affected_row()){
While($row =$result->fetch_object()){
Echo$row->tel.$row->content.$row->date;
}
}
如何使用下面的类,并解释下面什么意思?(3)
classtest{
function Get_test($num){
$num=md5(md5($num)."En");
return $num;
}
}
答:$testnum = "123";
$object = new test();
$encrypt = $object->Get_test($testnum);
echo $encrypt;
类test里面包含Get_test方法,实例化类调用方法多字符串加密
写出以下程序的输出结果 (1分)
<?php
$b=201;
$c=40;
$a=$b>$c?4:5;
echo$a;
?>
答:4
39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
isset($str),empty($str);
40、取得查询结果集总数的函数是?(1分)
答:mysql_num_rows($result);
41、$arr = array('james','tom', 'symfony'); 请打印出第一个元素的值 (1分)
答:echo array_shift($arr);
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
答:implode(‘,’,$arr);
43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
答:echo $a{0} 或 echo substr($a,0,1)
44、PHP可以和sql server/oracle等数据库连接吗?(1分)
答:当然可以
45、请写出PHP5权限控制修饰符(3分)
答:public(公共),private(私用),protected(继承)
46、请写出php5的构造函数和析构函数(2分)
答:__construct , __destruct
47、完成以下:
(一)创建新闻发布系统,表名为message有如下字段 (3分)
id文章id
title文章标题
content文章内容
category_id文章分类id
hits 点击量
答:CREATE TABLE 'message'(
'id' int(10) NOT NULL auto_increment,
'title' varchar(200) default NULL,
'content' text,
'category_id' int(10) NOT NULL,
'hits' int(20),
PRIMARY KEY('id');
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)
comment_id回复id
id文章id,关联message表中的id
comment_content回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id文章标题点击量回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
答:SELECT message.id id,message.title title,IF(message.`hits` ISNULL,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`;
(三)上述内容管理系统,表category保存分类信息,字段如下 (3分)
category_idint(4) not null auto_increment;
categroy_namevarchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
答:function categoryList(){
$result=mysql_query("select category_id,categroy_name from category")
or die("Invalid query: " . mysql_error());
print(" ... ");
}
3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/c/d将()添上
function getRelativePath($a, $b) {
$returnPath= array(dirname($b));
$arrA= explode('/', $a);
$arrB= explode('/', $returnPath[0]);
for($n = 1, $len = count($arrB); $n < $len; $n++){
if ($arrA[$n] != $arrB[$n]) {
break;
}
}
if($len - $n > 0) {
$returnPath = array_merge($returnPath,array_fill(1, $len - $n, '..'));
}
$returnPath= array_merge($returnPath, array_slice($arrA, $n));
returnimplode('/', $returnPath);
}
echo getRelativePath($a, $b);
很有用的PHP笔试题系列二的更多相关文章
- 很有用的PHP笔试题系列三
1. 什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰.主要特征:封装.继承.多态. 2. SESSION 与 COOKIE的区别是什么,请从 ...
- 很有用的PHP笔试题系列一
1.抓取远程图片到本地,你会用什么函数? fsockopen, A 3.用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21 Echo date(‘Y-m-d H:i:s’,st ...
- ACM_招新笔试题系列——买包子
招新笔试题系列——买包子 Time Limit: 2000/1000ms (Java/Others) Problem Description: 小华刚到大学,一天早上她替她室友买早餐,一共要N个包子. ...
- U3D面试题系列二
高频问题: 一.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去. 主要步骤有: 本地坐标->视图 ...
- 【面试突击】- 2019年125条常见的java面试笔试题汇总(二)
26.什么时候用assert. assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制.在实现中,assertion就是在程序中的一条语句,它对一个boolean表达 ...
- java笔试题(二)
1.写出一维数组初始化的两种方式 int[] arr={1,2,3}; String[] str=new String[2]; str[1]="23"; 2.写出二维数组初始化的两 ...
- CVTE C/C++开发工程师笔试题(二)
问题描述:打印重复元素 给定一个数组,内容可能包含1到N的整数,N最大为40000,数组可能含有重复的值,且N的取值不定.若只剩余5KB内存可用,请设计函数尽可能快的答应数组中所有重复的元素. voi ...
- 2017头条笔试题:二维点集中找出右上角没有点的点并按x坐标从小到大打印坐标
PS:这篇是之前本来就想发的但是一直没时间写,加上今天做了京东的题,结果代码名就命名为jingdong了……懒得改代码名重新跑一遍结果了=.= 暴力法去做就是遍历每个点,判断它是不是“最大点”.判断过 ...
- C笔试题(二)
/* 现在有一个数组 我们可以定义数组的子数组 如 数组 1 3 4 2 5 8 7 它的子数组可以是 1 3 4 3 4 2 5 等等 请写一个算法 找一个子数组 这个子数组递增不减少 并且是满足递 ...
随机推荐
- ARKit入门
ARKit介绍 ARKit是iOS11引入的一个全新的框架,使用Visual Inertial Odometry(VIO,视觉惯性里程计)来精确跟踪现实世界中的真实场景.相比其它设备平台,ARKit中 ...
- linux 虚拟机 安装 php-7.0.2
1.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel libjpeg libjpeg-devel libpng libp ...
- 1233: 传球游戏 [DP]
1233: 传球游戏 [DP] 时间限制: 1 Sec 内存限制: 128 MB 提交: 4 解决: 3 统计 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做 ...
- LOSKI,我
2019年入驻github以及博客园 在发现用github的issue写博客稍微有些奇怪后决定开辟这个更适合写博的空间 2019/4/1 目前大一,计算机专业,尚未分流 更多的时间花在了数据结构与算法 ...
- postgresql中的各种scan的比较
最近在看postgresql的查询计划,在查询中对表的扫描计划大概有如下几种: Seq Scan Index Scan Bitmap Heap Scan Index Only Scan 这里就把自己的 ...
- MySQL事务及事务隔离级别 锁机制
什么是事务? 当多个用户访问同一份数据时,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态更改为另一个一致性状态,这样的操作过程就是事务.事务具有的AC ...
- Axure 原型图
Axure RP 9最新版软件及汉化包下载 https://www.axure.com.cn/78629/ 点击下载 lang语言包放在根目录即可 Axure各种版本注册码 | 最新Axure R ...
- Django--队列2
celery 4.2 -Ofair现在是默认的调度策略 关于-Ofair命令行选项的作用存在很多混淆,并且在解释中使用术语“预取”可能没有帮助,因为这个术语在AMQP中有多么混乱. 当使用prefor ...
- 【转】idea中maven模块编程灰色
可能是设置中模块的pom.xml文件被忽略了 去掉对勾 转自:https://blog.csdn.net/ethan__xu/article/details/80794060
- Java实现连接FTP服务并传递文件
public class FtpClientUtil { private String host; private int port; private String username; private ...