1、表单提交get和post有何区别?

答:get的方式是把数据在地址栏中发送,get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

2、用PHP打印出前一天的时间格式;

echo date("Y-m-d H:i:s",time()-(3600*24));或echo date("Y-m-d H:i:s",strtotime("-1 day"));

3、echo(),print(),print_r()的区别;

echo可以接多个参数,print只能接一个参数,它们都是PHP的语言结构,print_r是递规打印,用来打印数组或对象

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

1) 将where中用的比较频繁的字段建立索引,联合索引。

2) 保证单表数据不超过200W,适时分割表。

3) 避免使用长连接。

4) 修改my.cnf里面的各项参数,比如最大连接数,查询缓存等。根据你的服务器内存来最大化调节那些配置参数。

5) 针对需求,使用正确的表引擎,是myisam或是innodb。

5.用PHP写出显示客户端IP与服务器IP的代码:

echo $_SERVER['REMOTE_ADDR'] //客户端ip

echo $_SERVER['SERVER_ADDR'] //服务器端ip

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

英文:

strrev($a)

中文或其他文字:

中文:GB2312, 代码是使用GB2312编码

<?php

function reverse($str)

{

$ret = "";

len=mbstrwidth(str,"GB2312");

for(i=0;i< len;i++)

{

arr[]=mbsubstr(str, $i, 1, "GB2312");

}

return implode("", array_reverse($arr));

}

print_r(reverse("你好"));

7、实现中文字串截取无乱码的方法。

mb_substr($str, 1, 1, "GB2312");

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

在失败的时候:

include产生一个warning,而require产生直接产生错误中断

require在运行前载入

include在运行时载入

require_once

include_once

9、如何修改SESSION的生存时间。

session_set_cookie_params

10、有一个网页地址, 比如PHP研究室主页:
http://www.jb51.net/index.html,如何得到它的内容?

file_get_contents ('http://www.jb51.net/index.html');

curl:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://v.hao123.com/dianshi/?qq-pf-to=pcqq.c2c");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'

));+

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$return = curl_exec($ch);

curl_close($ch);

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

未授权

header("HTTP/1.0 404 Not
Found");

fast CGI中:

header("Status: 404 Not Found");

12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?
成对出现

$a = <<EOD

good test

EOD;

13. 在PHP中error_reporting这个函数有什么作用? 
设定error的展示级别

14、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? 
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

15、检测一个变量是否有设置的函数是否?是否为空的函数是?
isset()
empty()

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

print_r($arr[0]);

reset($arr);

print_r(current($arr));

print_r(array_shift($arr));

17. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如:
http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

<?php

$url =
"http://www.sina.com.cn/abc/de/fg.php?id=1";

arr=parseurl(url);

pathArr=pathinfo(arr['path']);

print_r($pathArr['extension']);

18.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

<?php

function aGetAllFile($folder)

{

$aFileArr =
array();

if(is_dir($folder))

{

handle=opendir(folder);

while((file=readdir(handle)) !== false)

{

//如果是.或者..则跳过

if(file=="."||file == "..")

{

continue;

}

if(is_file(folder."/".file))

{

aFileArr[]=file;

}

else
if(is_dir(folder."/".file))

{

aFileArr[file] =
aGetAllFile(folder."/".file);

}

}

closedir($handle);

}

return $aFileArr;

}

$path = "/home/test/sql";

print_r(aGetAllFile($path));

19. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

//冒泡排序(数组排序)

function bubble_sort($array){

$count = count($array);

if ($count <= 0) return
false;

for($i=0; $i<$count;
$i++){

for($j=$i;
$j<$count-1; $j++){

if ($array[$i] > $array[$j]){

$tmp = $array[$i];

$array[$i] = $array[$j];

$array[$j] = $tmp;

}

}

}

return $array;

}

//快速排序(数组排序)

function quick_sort($array) {

if (count($array) <= 1)
return $array;

$key = $array[0];

$left_arr = array();

$right_arr = array();

for ($i=1;
$i<count($array); $i++){

if ($array[$i]
<= $key)

$left_arr[] = $array[$i];

else

$right_arr[] = $array[$i];

}

$left_arr =
quick_sort($left_arr);

$right_arr =
quick_sort($right_arr);

return
array_merge($left_arr, array($key), $right_arr);

}

20. 使用五种以上方式获取一个文件的扩展名 ;

function get_ext1($file_name){

return strrchr($file_name,
'.');

}

function get_ext2($file_name){

return substr($file_name,
strrpos($file_name, '.'));

}

function get_ext3($file_name){

return
array_pop(explode('.', $file_name));

}

function get_ext4($file_name){

return pathinfo($file_name,
PATHINFO_EXTENSION);

}

function get_ext5($file_name){

return
strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));

}

21.session与cookie的区别?

答:session:储存用户访问的全局唯一变量,存储在服务器上的PHP指定的目录中的(session_dir)的位置进行的存放

cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

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

22.数据库中的事务是什么?

答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,

事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

23、优化MySQL数据库的方法

答:

(1)、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM

(2)、使用连接(JOIN)来代替子查询:

(3)、使用联合(UNION)来代替手动创建的临时表

(4)、事务处理:

a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败

(5)、锁定表,优化事务处理:

a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。

包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前,

不会有其它的访问来对 inventory 进行插入、更新或者删除的操作

(6)、使用外键,优化锁定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,

任何一条没有合法的customerid的记录不会写到orderinfo里

(7)、建立索引:

(8)、优化查询语句

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

24、如何修改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);

25、谈谈对mvc的认识

答:由模型(model),视图(view),控制器(controller)完成的应用程序

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

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

答: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);

}

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

  $num = 10;

  function multiply(){

  $num = $num * 10;

  }

  multiply();

  echo $num;

  ?>

答:输出:10

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

答:echo $array[0];

29、请将28题的数组的值用','号分隔并合并成字串输出

答:for($i=0;$i<count($array);$i++){
echo $array[$i].",";}

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

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

31、

<?php

$str1 = null;

$str2 = false;

echo $str1==$str2 ? ‘相等’ : ‘不相等’;

$str3 = ”;

$str4 = 0;

echo $str3==$str4 ? ‘相等’ : ‘不相等’;

$str5 = 0;

$str6 = ’0′;

echo $str5===$str6 ? ‘相等’ : ‘不相等’;

?>

答案:相等 相等 不相等

32、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?

答:Varchar是变长,节省存储空间,char是固定长度。查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些

33、求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

方法一:

<?php

class Dtime

{

function get_days($date1, $date2)

{

$time1 = strtotime($date1);

$time2 = strtotime($date2);

return ($time2-$time1)/86400;

}

}

$Dtime = new Dtime;

echo $Dtime->get_days(’2007-2-5′, ’2007-3-6′);

?>

方法二:

<?php

$temp = explode(‘-’, ’2007-2-5′);

$time1 = mktime(0, 0, 0, $temp[1],
$temp[2], $temp[0]);

$temp = explode(‘-’, ’2007-3-6′);

$time2 = mktime(0, 0, 0, $temp[1],
$temp[2], $temp[0]);

echo ($time2-$time1)/86400;

方法三:echo abs(strtotime(“2007-2-1″)-strtotime(“2007-3-1″))/60/60/24 计算时间差

34、请写一个函数,实现以下功能:

字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

方法一:

function str_explode($str){

$str_arr=explode(“_”,$str);$str_implode=implode(” “,$str_arr);
$str_implode=implode

(“”,explode(” “,ucwords($str_implode)));

return $str_implode;

}

$strexplode=str_explode(“make_by_id”);print_r($strexplode);

方法二:$str=”make_by_id!”;

$expStr=explode(“_”,$str);

for($i=0;$i<count($expStr);$i++)

{

echo ucwords($expStr[$i]);

}

方法三:echo str_replace(‘ ‘,”,ucwords(str_replace(‘_’,’ ‘,’open_door’)));

35、echo count(“abc”); 输出什么?

答案:1

36、.以下的代码会产生什么?为什么?

$num =10;

function multiply(){

$num =$num *10;

}

multiply();

echo $num;

由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。

37. 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来传送的。

最新文章

  1. 【日常操作记录】Asp.Net Core 的一些基本操作或属性
  2. Java 仿迅雷多线程下载
  3. 二、JavaScript语言--JS基础--JavaScript进阶篇--函数
  4. Power Gating的设计(模块二)
  5. Html5最简单的游戏Demo——Canvas绘图的弹弹球
  6. Linux学习笔记29——IPC状态命令
  7. 【POJ1195】【二维树状数组】Mobile phones
  8. Windows下Python中的中文路径和中文输出问题
  9. linux系统管理命令--系统测试工具
  10. Linux文件查看与查找命令
  11. Appium元素定位
  12. 实操代码研究各种Java技术-java.toutiao.im
  13. word自动备份,word误删内容恢复
  14. Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比
  15. C语言代码
  16. python if条件判断语句
  17. [转]Raw Queries in Laravel
  18. Redis客户端使用
  19. 【Windows】ASP.NET Core 部署到 IIS
  20. 安装redis服务端

热门文章

  1. 在iOS中使用ZBar扫描二维码
  2. hadoop常见错误总结三
  3. MySQL安装与操作总结
  4. ofdm理解(转载)
  5. display的flex属性使用详解
  6. python从网络时间服务器获取并打印当前时间以及pip安装ntplib的一次体验
  7. 默认库“library”与其他库的使用冲突;使用 /NODEFAULTLIB:library
  8. 黄聪:使用Add-on SDK开发火狐扩展
  9. MySql触发器实现数据同步学习
  10. jmeter线程组 讲解