当前位置: 首页 > 编程日记 > 正文

php面试题8

php面试题8

一、总结

二、php面试题8

1、表单数据提交方式 POST 和 GET 的区别,URL 地址传递的数据最大长度是多少?
$_GET 传参是请求 HTTP 协议通过 url 参数传递和接收,会在浏览器地址栏中看到
$_GET 传参最多 2k 个字符
$_POST 是实体数据传参,隐藏式的,可以通过表单提交大量信息

2、SESSION 和 COOKIE 的作用和区别,SESSION 信息的存储方式,如何进行遍历?
1) SESSION:存储在服务器端, cookie:存储在客户端
2) 两者都可通过时间来设置时间长短
3) cookie 不安全,考虑安全性还是用 session
4) session 保存到服务器端,如果访问量过大,对服务器性能很影响,应使用 memcache 缓存
session
5) 单个 COOKIE 在客户端限制是 3K,即存放的 cookie 不能超过 3K,SESSION 没有限制
6) 禁止了 COOKIE 后 SESSION 是不能使用的,session 因为存储在服务器端,具体路径在
php.ini 中 session_dir 目录中,是私有的每个用户产生 session 都不同
因为$_SESSION 是数组所以遍历就用数组的方式遍历!

3、通过 PHP 函数的方式对目录进行遍历,写出程序

递归


<?php
dirs('F:\wwwroot');

function dirs($path){
$path=str_replace('\\','/',$path);
$res=opendir($path);
readdir($res);
readdir($res);
while($filename=readdir($res)){
$newpath=$path.'/'.$filename;
if(is_dir($newpath)){
echo '<font color="red">目录:</font>'.$filename.'<br />';
dirs($newpath);
}else{
echo '文件:'.$filename.'<br />';
}
}
}
?>

4、Linux 的目录进行遍历,编写 shell 脚本

Tree 命令 //现在默认 Linux 都带有的命令
Ls –lR test

5、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?
数据库索引就是给数据库中的每张表建立索引,便于检索提高 select 效率
主键索引是给每张表的主键设置索引
唯一索引是给每张表的唯一值字段设置索引;

主键索引只有一个,唯一值索引可以有无数个

只要字段数据不重复都可以设置唯一值索引
索引的缺点是建立索引需要增加存储空间,空间利用率低,并且当数据发生变化时改变索引
资源消耗较大。

6、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案?
1) 查询速度慢 ,避免全盘扫描,因为全盘扫描会导致大量磁盘 I/O 操作 用 sphinx 来解

2) 读写过于频繁 读写分离来做
3) 设置主从,并做好冗余备份
4) 数据库压力过大 采用分布式数据库负载均衡来解决
5) memcache 缓存层
6) 链接数据库使用 PDO,或者 mysqli 预处理缓存字段
7) 索引优化

7、编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库?
<form method="post" action="">
<input type="text" name="usrname" />

<textarea name="main">
</textarea>
<input type="submit" name="sub"/>
</form>

8、通过 JS 创建一个当前窗口的子窗口,通过程序实现子窗口对父窗口的操作实例?
父窗体 paren.html 中内容:
<html>
<title>父窗体</title>
<head>
<script>
function demo(){
window.open('children.html','name','height=200,width=200');
}
</script>
</head>
<body οnlοad='demo()'>
</body>
</html>
子窗体 children.html 中内容:
<html>

<title></title>
<head>
<script>
function change(){
window.opener.document.body.bgColor='red'; //控制父窗体的
背景颜色
}
</script>
</head>
<body>
<button οnclick="change()">变色</button>
</body>
</html>

9、通过 JS 实现页面的前进和后退操作?
<a href="javascript:window.history.go(1)">前进</a>
<a href="javascript:window.history.go(-1)">后退</a>

10、浏览器 IE 和非 IE 浏览器的划分,区别是什么?
区别是浏览器内核的不同
CSS 和 js 兼容性的不同

#navigator

11、设定网站的用户数量在千万级,但是活跃用户的数量只有 1%,如何通过优化数据库提
高活跃用户的访问速度?
1)分表和分区
2)中间表(insert into table select * from stick where id>100
create view v_stick as select * from stick where id>100
show tables;
3)索引优化

12、服务器在运行的过程中,随着用户访问数量的增长,如何通过优化,保证性能?如果
数据库已经达到最优化,请设计出继续升级的解决方案
squid->lvs|集群->shpinx|memcache->php 静态化(缓存)->分区|主从|一主多从(读写
分离)
首先可以通过
分库分表缓解一些负担,
应用缓存服务器,如 MemCache 服务器,
增加主从服务器和负载均衡服务器提高网站读取速度,
添加静态资源服务器,存放一些静态资源,如 CSS,Js,图片等,
提高检索速度可以架设内容检索服务器如 Shpinx,Xapian,
消息队列服务器,架设数据库集群,

也可以考虑 NoSQL,如谷歌的 BigTable,DB 连接池,使数据库读写分离

13、写出程序运行的结果
<?php
$a=0;
$b=0;
If($a=3||$b=3){
$a++;
$b++;
}
Echo$a.”,”.$b;
?>

1.1(注意运算符的优先级,true++还是1,表达式从右向左执行)

<?php
$a=0;
$b=0;
If($a=4|$b=3){
$a++;
$b++;
}
Echo$a.”,”.$b;

?>

8.4

100011
结果:
1.1
8.4

14、实现无限级分类的数据库设计
第一步:
create table lt_cat(
id int(11) not null auto_increment primary key,
pid int(11) not null,
path varchar(255) not null,
name varchar(50) not null
)engine=myisam default charset=utf8;
第二步: //path 中保存父级的 id
insert into lt_cat(pid,name,path) values(0,'China','0'); //id 为 1
insert into lt_cat(pid,name,path) values(0,'American','0'); //id 为 2
insert into lt_cat(pid,name,path) values(2,'new York','0,2'); //id 为 3
insert into lt_cat(pid,name,path) values(1,'beijing','0,1'); //id 为 4
insert into lt_cat(pid,name,path) values(4,'海淀','0,1,4'); //id 为 5

insert into lt_cat(pid,name,path) values(5,'上地','0,1,4,5'); //id 为 6
第三步:
Select name,concat(path,’,’,id) as bpath from lt_cat order by bpath;
Id name pid path
1 a 0 0
2 b 1 0-1
3 c 1 0-1
4 d 3 0-1-3
Select * from table order by concat(path,”-”,id);

2014.10.24-面试题:


写出你认为语言中的高级函数:
1.数组
array_filter();
array_map();
array_multisort();
array_count_values();
array_splice();

2.字符串
htmlspecialchars();
htmlspecialchars_decode();
json_encode();
json_decode();
substr_count();
pathinfo();
parse_url();
parse_str();

3.正则
preg_match_all();
preg_replace();

5.文件
file_get_contents();
file_put_contents();
scandir();
readfile();

6.画图
imagecreatefromjpeg();

7.cookie与session
setcookie();
session_id();
session_name();

8.数据库操作
mysql_fetch_assoc();
last_insert_id();

smarty模板引擎中的关键字:
1.assign();
2.display();
3.for
4.if
5.foreach
6.volist

mysql:
1.字段管理
2.索引管理
3.增、删、改、查
4.多表查询

首字母大写:
<?php
$str='hello_world';

$arr=explode('_',$str);

foreach($arr as $key=>$val){
    $arr[$key]=ucfirst($val);
}

echo join('',$arr);
 ?>

千分位:
<?php
$str='1234567890';

$str2=strrev($str);

$arr=str_split($str2,3);

echo strrev(join(',',$arr));
 ?>

复习:linux任务计划
复习:linux用户权限

网站采集:
<?php
header('content-type:text/html;charset=utf-8');
$str=file_get_contents('http://www.baidu.com');
preg_match_all('/<title>(.*)<\/title>/',$str,$ms);
echo '<h1>'.$ms[1][0].'</h1>';
echo '<hr>';
$str=file_get_contents('http://www.qq.com');
preg_match_all('/<title>(.*)<\/title>/',$str,$ms);
echo '<h1>'.iconv('gbk','utf-8',$ms[1][0]).'</h1>';
 ?>

目录遍历:
<?php

$dir='bs';

function tree($dir){
    $arr=scandir($dir);

    foreach($arr as $file){
        if($file!='.' && $file!='..'){
            $path=$dir.'/'.$file;

            if(is_dir($path)){
                tree($path);
            }else{
                echo $path.'<br>';
            }
        }
    }
}

tree($dir);

 ?>

js判断浏览器类型:
info=navigator.userAgent;    
if(info.search(/firefox/i)>=0){
    // type='firefox';
    document.body.style.background='#faa';    
}else if(info.search(/msie/i)>=0){
    // type='ie';
    document.body.style.background='#afa';    
}else if(info.search(/chrome/i)>=0){
    document.body.style.background='#aaf';    
    // type='chrome';
}


转载于:https://www.cnblogs.com/Renyi-Fan/p/9074163.html

相关文章:

php 计算器

<html><head><title>PHP实现简单计算器</title><meta http-equiv"Content-Type" content"text/html;charsetgb2312"></head> <?php$num1true;$num2true;$numatrue;$numbtrue;$message"";//单路分支if(i…

【jQuery】如何用jQuery实现鼠标移入后改变背景颜色

实现效果如图&#xff1a; jQuery代码实现&#xff1a; $(function () {var oldColor "";$(".mouse-in-out").mouseover(function () {originalColor $(this).css("background-color");$(this).css("background-color","#d9e8f…

域用户权限设置目录权限

声明&#xff1a;本文转载自gnaw0725.blogbus.com&#xff0c;更新网址&#xff1a;http://gnaw0725.blog.51cto.com。 一般用户是domain user权限&#xff0c;现在设置的策略是&#xff0c;每个硬盘分区的权限下只有administratordomain,和userdomain可以读写&#xff0c;遇到…

有用的编程相关网站

1.代码可视化网站&#xff1a;http://www.pythontutor.com 转载于:https://www.cnblogs.com/fuqia/p/9074571.html

手把手教你如何扩展GridView之自带CheckBox

我们在使用GridView的时候&#xff0c;很多时候需要使用CheckBox列&#xff0c;比如批量删除&#xff0c;批量审批&#xff0c;但是每每都需要记住繁琐的实现方法。多麻烦呀&#xff01;再次给GridView做个手术&#xff0c;让它自己就能产生CheckBox岂不爽死了。以后您就有权利…

c++ 的重载、覆盖、隐藏

成员函数被重载的特征&#xff1a;&#xff08;1&#xff09;相同的范围&#xff08;在同一个类中&#xff09;&#xff1b;&#xff08;2&#xff09;函数名字相同&#xff1b;&#xff08;3&#xff09;参数不同&#xff1b;&#xff08;4&#xff09;virtual关键字可有可无。…

【css】padding 和 margin的区别

css中有有一对经常是一起出现的属性&#xff1a;padding和margin&#xff0c;接下来我们以一个例子来看一下两个属性的作用及其区别。 实例演示&#xff1a; 使用属性前&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head&…

POJ-2159(Water)

2159:Ancient Cipher 查看提交统计提问时间限制: 1000ms 内存限制: 65536kB 描述 Ancient Roman empire had a strong government system with various departments, including a secret service department. Important documents were sent between provinces and the capital…

tensor乘运算

torch.mul(a, b) 是矩阵 对应位相乘&#xff0c;即点乘操作&#xff0c; a和b的维度必须相等&#xff0c;a的维度是(1,2)&#xff0c; 则b的维度必须是&#xff08;1,2&#xff09;&#xff0c; 返回还是&#xff08;1,2&#xff09;的矩阵 torch.mm(a,b)是矩阵a和b矩阵相乘&am…

android,与PHP通信,返回JSON

小项目需要读取数据库&#xff0c;刚好手头有服务器&#xff0c;处于某些考虑&#xff0c;还是想远程读数据&#xff0c;所遇异常 Logcat异常&#xff1a;SingleClientConnManager(411): Invalid use of SingleClientConnManager: connection still allocated. Make sure to re…

【工具软件】webstorm配置

下载webstorm和jar包&#xff1a; 下载网址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Tnp4TqWnu8dQzv6ds7zhyw 提取码&#xff1a;de0f 下载软件&#xff1a; 1、 2、选择一个非C盘的位置安装 3、在1处选自你电脑的操作系统&#xff0c;大概率是64位的&#x…

美国爱因斯坦计划技术分析

【本文与2014年6月16日再次编辑&#xff0c;增加了一个续文的链接】【本文于2011年8月30日再次更新&#xff0c;修订并补充了有关爱因斯坦3的一些内容】【本文于2011年8月20日更新】【前言】本文始于对网络安全态势感知的研究。而美国的这个爱因斯坦计划可以看成是网络态势感知…

[C].运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和…

[kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

L - 还是畅通工程 题目链接&#xff1a;https://vjudge.net/contest/66965#problem/L 题目&#xff1a; 某省调查乡村交通状况&#xff0c;得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通&#xff08;但不一定有直…

[建议] GCC 新手入门【转】

本文是写给 gcc 新手的入门文章&#xff0c;所以内容比较简单。如果你知道下面3条命令都可以编译c的话&#xff0c;就不用在本文浪费时间了 g -Wall hellocpp.cpp gcc -Wall hellocpp.cpp -lstdc gfortran -Wall hellocpp.cpp -lstdc 注&#xff1a;本文最新版在wiki中 http:…

【java】如何判断数组中的内容是否重复

代码实现&#xff1a; public static boolean judgeArray(long[] arraySample) {HashSet<Long> hashSet new HashSet<Long>();for (int i 0; i < arraySample.length; i) {hashSet.add(arraySample[i]);}if (hashSet.size() arraySample.length) {return tr…

html标签的赋值与取值

现在有一个Add.ascx 和一个Add.aspx页面&#xff0c;Add.ascx中有一个html标签&#xff0c;如果标签有默认值的话在Add.ascx.cs的Page_Load中有Request.Form["标签ID"]就可以取到。 下面说赋值&#xff0c;因为我的标签是有默认值的&#xff0c;所以也就不能用<%%…

Entity Framework应用:根据实体的EntityState状态实现增删改查

在上一篇文章中&#xff0c;我们讲解了使用EF实现简单的增删改成&#xff0c;在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查。 一、修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式&#xff0c;即先查询出来要修改的数据&#xff0c;然后在修改。但是…

几种Normalization算法.md

神经网络有各种归一化算法&#xff0c;BN&#xff0c;LN&#xff0c;IN,GN。 1. Batch Normalization 实现流程&#xff1a;对Tensor为[N, C, H, W], 把第1个样本的第1个通道&#xff0c;加上第2个样本的第1个通道&#xff0c; 加上第N个样本的第1个通道&#xff0c;求平均&…

【java】浅谈注释

java中的注释可以分为三大类&#xff1a;行注释、块注释以及文档注释 行注释&#xff1a; 基本语法&#xff1a; //注释的内容 产生 效果&#xff1a;该行//之后的内容就都被注释了 块注释&#xff1a; 基本语法&#xff1a; /* 注释内容 */ 注&#xff1a;块注释禁止嵌套…

一个“复制/删除”方式的滚动

一个利用复制和删除节点的方式做的滚动。。。不知性能怎样呢&#xff1f; 一个滚动Left Right 12345678转载于:https://www.cnblogs.com/lbsgood/archive/2012/06/08/2541177.html

OSPF-网络类型(ip ospf network ?)

在介绍之前首先看个表&#xff01;二层链路与OSPF网络类型有什么联系呢&#xff1f;其实中间的关系可大了&#xff0c;OSPF网络类型应该说是根据二层链路的类型来选择的&#xff0c;而且两者应用匹配&#xff0c;也就是当OSPF网络类型支持组播时&#xff0c;如果二层链路不支持…

E20180525-hm

sensitive adj. 敏感的; 感觉的; [仪] 灵敏的; 易受影响的; lookup v. 查找; 查表; speedy adj. 快的&#xff0c;迅速的; 敏捷的 marshal vt. 整理&#xff0c;排列&#xff0c;集结; vi. 排列; 编队; n. 元帅; 典礼官; 执法官; 消防局长; feature n. 特征&#xff0c;特点;…

[题解]RGB Substring (hard version)-前缀和(codeforces 1196D2)

题目链接&#xff1a;https://codeforces.com/problemset/problem/1196/D2 题意&#xff1a; q 个询问&#xff0c;每个查询将给你一个由 n 个字符组成的字符串s&#xff0c;每个字符都是 “R”、“G” 或 “B”。 求出更改初始字符串 s 中的最小字符数&#xff0c;以便更改后将…

C#连接MySql

1.从http://prdownloads.sourceforge.net/mysqldrivercs/MySQLDriverCS-n-EasyQueryTools-3.0.18.exe?download上下载MySQLDriverCS. 然后安装。2.从安装目录中把MySQLDriverCS.dll.添加到.net的组件 1 public void Connect_Net()2 {3 MySQLConnection m…

【java】快速复制数组方法arraycopy的使用

通常进行数组的复制需要使用到循环&#xff0c;然而jdk中已经给我们封装好了一个专门用来复制数组的快捷方法 arraycopy&#xff08;&#xff09; 使用方法&#xff1a; System.arraycopy(src, srcPos, dest, destPos, length); 注&#xff1a; src:被复制的数组 srcPos&am…

【指针的高级声明】

在分享这些高级声明之前&#xff0c;我想&#xff0c;大家有必要知道各个操作符在C、C语言中的优先级&#xff0c;以便识别欲讲述的高级声明。这里先列举一些高级声明的例子&#xff0c;能自己揣摩清楚最好不过了&#xff0c;如果有想不懂的地方&#xff0c;请参见下方的识别方…

【大数据实时计算框架】Storm框架

一、大数据实时计算框架 1、什么是实时计算&#xff1f;流式计算&#xff1f; &#xff08;一&#xff09;什么是Storm?Storm为分布式实时计算提供了一组通用原语&#xff0c;可被用于“流处理”之中&#xff0c;实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方…

引用-ZIGBEE-ZSTACK网络配置相关问题

下面是以道友问的问题&#xff0c;这里简单做分析&#xff0c;仅供交流学习用&#xff0c;有什么不对之处还请各位大虾指正。鄙人邮箱为&#xff1a;peterpanjy163.com. 欢迎交流&#xff01;&#xff01;1&#xff1a; 最主要的就是路由问题。我用06协议栈自带的例子程序sampl…

GHOST还原教程详细

要提醒您注意的是在使用 GHSOT 软件恢复系统时&#xff0c;请勿中途中止&#xff01;如果您在恢复过程中重新启动了计算机那么您的计算机将无法启动&#xff01;必定要接双硬盘或用光盘系统启动才可恢复 在您的系统遇到以下的情况之一 怀疑或确定您的系统中了病毒或木马 系统运…