php遍历数组查询数据库,php如何遍历数据库查询数组
PHP⾯试⼲货
1、进程和线程
进程和线程都是由操作系统所体会的程序运⾏的基本单元,系统利⽤该基本单元实现系统对应⽤的并发性。进程和线程的区别在于:
简⽽⾔之,⼀个程序⾄少有⼀个进程,⼀个进程⾄少有⼀个线程.
线程的划分尺度⼩于进程,使得多线程程序的并发性⾼。
另外,进程在执⾏过程中拥有独⽴的内存单元,⽽多个线程共享内存,从⽽极⼤地提⾼了程序的运⾏效率。
线程在执⾏过程中与进程还是有区别的。每个独⽴的线程有⼀个程序运⾏的⼊⼝、顺序执⾏序列和程序的出⼝。但是线程不能够独⽴执⾏,必须依存在应⽤程序中,由应⽤程序提供多个线程执⾏控制。
从逻辑⾓度来看,多线程的意义在于⼀个应⽤程序中,有多个执⾏部分可以同时执⾏。但操作系统并没
有将多个线程看做多个独⽴的应⽤,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
2、apache默认使⽤进程管理还是线程管理?如何判断并设置最⼤连接数?
⼀个进程可以开多个线程 默认是进程管理 默认有⼀个主进程
Linux: ps -aux | grep httpd | more ⼀个⼦进程代表⼀个⽤户的连接
Conf/f 多路功能模块 http -l 查询当前apache处于什么模式下
3、单例模式
单例模式需求:只能实例化产⽣⼀个对象
如何实现:
私有化构造函数
禁⽌克隆对象
提供⼀个访问这个实例的公共的静态⽅法(通常为getInstance⽅法),从⽽返回唯⼀对象
需要⼀个保存类的静态属性
class demo {
private static $MyObject; //保存对象的静态属性
private function __construct(){ //私有化构造函数
}
private function __clone(){ //禁⽌克隆
}
public static function getInstance(){
if(! (self::$MyObject instanceof self)){
self::$MyObject = new self;
}
return self::$MyObject;
}
}
4、安装完Apache后,在f中配置加载PHP⽂件以Apache模块的⽅式安装PHP,在⽂件f中⾸先要⽤语句LoadModule php5_module "e:/php/php5apache2.dll"动态装载PHP模块,然后再⽤语句AddType application/x-httpd-php .php 使得Apache把所有扩展名为PHP的⽂件都作为PHP脚本处理
5、debug_backtrace()函数能返回脚本⾥的任意⾏中调⽤的函数的名称。该函数同时还经常被⽤在调试中,⽤来判断错误是如何发⽣的
function one($str1, $str2)
{
two("Glenn", "Quagmire");
}
function two($str1, $str2)
{
three("Cleveland", "Brown");
}
function three($str1, $str2)
{
print_r(debug_backtrace());
}
one("Peter", "Griffin");
Array
(
[0] => Array
(
[file] => D:\www\test\result.php
[line] => 9
[function] => three
[args] => Array
(
[0] => Cleveland
[1] => Brown
)
)
[1] => Array
(
[file] => D:\www\test\result.php
[line] => 5
[function] => two
[args] => Array
(
[0] => Glenn
[1] => Quagmire
)
)
[2] => Array
(
[file] => D:\www\test\result.php
[line] => 16
[function] => one
[args] => Array
(
[0] => Peter
[1] => Griffin
)
)
)
6、输出⽤户的IP地址,并且判断⽤户的IP地址是否在192.168.1.100 — 192.168.1.150之间echo $ip=getenv('REMOTE_ADDR');
$ip=str_replace('.','',$ip);
if($ip<1921681150 && $ip>1921681100)
{
echo 'ip在192.168.1.100—–192.168.1.150之间';
}
else
{
echo 'ip不在192.168.1.100—–192.168.1.150之间';
}
7、请将2维数组按照name的长度进⾏重新排序,按照顺序将id赋值
$tarray = array(
array('id' => 0, 'name' => '123'),
array('id' => 0, 'name' => '1234'),
array('id' => 0, 'name' => '1235'),
array('id' => 0, 'name' => '12356'),
array('id' => 0, 'name' => '123abc')php如何运行代码
);
foreach($tarray as $key=>$val)
{
$c[]=$val['name'];
}
function aa($a,$b)
{
if(strlen($a)==strlen($b)) return 0;
return strlen($a)>strlen($b)?-1:1;
}
usort($c,'aa');
$len=count($c);
for($i=0;$i
{
$t[$i]['id']=$i+1;
$t[$i]['name']=$c[$i];
}
print_r($t);
8、表单数据提交⽅式POST和GET的区别,URL地址传递的数据最⼤长度是多少?
POST⽅式提交数据⽤户不可见,是数据更安全,最⼤长度不受限制,⽽GET⽅式传值在URL地址可以看到,相对不安全,对⼤长度是2048字节。
9、SESSION和COOKIE的作⽤和区别,SESSION信息的存储⽅式,如何进⾏遍历
SESSION和COOKIE都能够使值在页⾯之间进⾏传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,⽤户使⽤⼿段可以进⾏修改,SESSION依赖于COOKIE进⾏传递的。Session遍历使⽤$_SESSION[]取值,cookie遍历使⽤$_COOKIE[]取值。
10、什么是数据库索引,主键索引,唯⼀索引的区别,索引的缺点是什么
索引⽤来快速地寻那些具有特定值的记录。
主键索引和唯⼀索引的区别:主键是⼀种唯⼀性索引,但它必须指定为“PRIMARY KEY”,每个表只能有⼀个主键。唯⼀索引索引列的所有值都只能出现⼀次,即必须唯⼀。
索引的缺点:
1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加⽽增加。
2、索引需要占⽤物理空间,除了数据表占数据空间之外,每⼀个索引还要占⼀定的物理空间,如果要建⽴聚簇索引,需要的空间就会更⼤。
3、当对表中的数据进⾏增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
11、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决⽅案
瓶颈主要有:
1、磁盘搜索 优化⽅法是:将数据分布在多个磁盘上
2、磁盘读/写 优化⽅法是:从多个磁盘并⾏读写。
3、CPU周期 优化⽅法:扩充内存
4、内存带宽
12、include和require区别
include引⼊⽂件的时候,如果碰到错误,会给出提⽰,并继续运⾏下边的代码。
require引⼊⽂件的时候,如果碰到错误,会给出提⽰,并停⽌运⾏下边的代码。
13、⽂件上传时设计到点
和⽂件上传有关的php.ini配置选项(File Uploads):
file_uploads=On/Off:⽂件是否允许上传
upload_max_filesize上传⽂件时,单个⽂件的最⼤⼤⼩
post_max_size:提交表单时,整个post表单的最⼤⼤⼩
max_file_uploads =20上传⽂件的个数
内存占⽤,脚本最⼤执⾏时间也间接影响到⽂件的上传
14、header常见状态
//200 正常状态
header('HTTP/1.1 200 OK');
// 301 永久重定向,记得在后⾯要加重定向地址 Location:$url
header('HTTP/1.1 301 Moved Permanently');
// 重定向,其实就是302 暂时重定向
// 设置页⾯304 没有修改
header('HTTP/1.1 304 Not Modified');
// 显⽰登录框,
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="登录信息"');
echo '显⽰的信息!';
// 403 禁⽌访问
header('HTTP/1.1 403 Forbidden');
// 404 错误
header('HTTP/1.1 404 Not Found');
// 500 服务器错误
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论