101.echo(),print(),print_r()的区别?
答:
Echo() 是PHP语法,可以输出多个值,不能输出数组。
Print() 是PHP函数,可以输出单个简单类型的变量值。
Print_r() 是php函数,可以打印出复杂类型变量的值,如数组,对象。
102.什么是模板技术、能够使HTML和PHP分离开使用的模板?
答:
模板技术就是使程序的逻辑代码和界面分开的技术。
能够使HTML和PHP分开的模板有:Smarty、Template、PHPlib Template、FastTemplate
103.对于大流量的网站,您采用什么样的方法来解决访问量问题
答:
优化程序,优化数据库,如果程序和数据库已经最优化,使用以下解决方法:
1、确定当前服务器设备是否满足流量需求。
2、使用Memcache缓存技术,把动态内容缓存到文件中,动态网页直接调用这些文件,而不必再访问数据库。
3、禁止外部盗链,图片和文件外部盗链会给服务器带来大量的负载压力,可以通过refer来禁止外部盗链,或者使用apache来配置禁止盗链。
4、控制大文件的下载,大文件的下载对于非SCSI硬盘来说会占用大量的资源,导致服务器的响应能力下降。
5、使用不同的主机分流主要流量,使服务器均衡负载。
6、使用流量统计软件统计分析网站流量,可以知道哪些地方耗费了大量的流量,哪些页面需要再进行优化。
104.mysql_fetch_row() 和mysql_fetch_array之间有什么区别
答:
Mysql_fetch_row()以索引数组的方式取查询的结果集,mysql_fetch_array()以索引数组和关联数组两种方式取查询的结果集。
105.实现中文字串截取无乱码的方法
答:
Mb_substr();
106.用PHP写出显示客户端IP与服务器IP的代码
答:
获取客户端IP:get_env(“REMOTE_ADDR”);
获取服务器端IP:$_SERVER["SERVER_ADDR"];
107.有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容
答:
获取网页内容:
$url=”http://www.phpres.com/index.html“;
$str=file_get_contents($url);
108.请写一个函数验证电子邮件的格式是否正确
答:
function checkemail($email)
{
echo preg_match(‘/^[\w]+@[\w]+[\.]([\w]+)$/’,$email) ’email格式正确‘:’email格式不正确‘;
}
109.简述如何得到当前执行脚本路径,包括所得到参数
答:
用$_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];取得当前页面的完整路径和参数。
取得参数:$_SERVER['QUERY_STRING'];
110.JS表单弹出对话框函数是 获得输入焦点函数是
答:
Alert();
Onfocus();
111.写一个函数,算出两个文件的相对路径
如 $a = ’/a/b/c/d/e.php’;
$b = ’/a/b/12/34/c.php’;
计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/c/d将()添上
$a=”http://www.cnblogs.com/a/b/c/d/e.php”;
$b=”http://www.cnblogs.com/a/b/12/34/c.php”;
答:
$ainfo=parse_url($a);
$binfo=parse_url($b);
$apath=ltrim($ainfo['path'],’/');
$bpath=ltrim($binfo['path'],’/');
$arr=explode(‘/’,$apath);
$brr=explode(‘/’,$bpath);
$count=count($arr);
for($i=0;$i<$count;$i++)
{
if($arr[$i]==$brr[$i])
{
$brr[$i]=’..’;
}
else
{
break;
}
}
$cha=implode(‘/’,$brr);
print_r($cha);
112.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
答:
function show($dirs){
$dir=opendir($dirs);
While($f=readdir($dir))
{
If($f!=’.' && $f!=’..’)
{
$file=$dirs.’/’.$f;
If(is_file($file))
{
Echo ’文件名:‘.$file.’
’;
}
Else
{
Show($file);
}
}
}
}
113.Cookie和session的区别,禁止了cookie后session能正常使用吗?session的缺点是什么?session在服务器端是存在哪里的?是共有的还是私有的?
答:
COOKIE保存在客户端,用户通过手段可以进行修改,不安全,单个cookie允许的最大值是3k。
而SESSION保存在服务器端,相对比较安全,大小没有限制。
禁用了cookie之后session不能正常使用。
Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。
Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。
Session文件是公有的。
114.数据库索引有几类,分别是什么?什么时候该用索引?
答:
普通索引、主键索引、唯一索引
并非所有的数据库都以相同的方式使用索引,作为通用规则,只有当经常查询列中的数据时才需要在表上创建索引。
115.写几个魔术方法并说明作用?
答:
__call()当调用不存在的方法时会自动调用的方法
__autoload()在实例化一个尚未被定义的类是会自动调用次方法来加载类文件
__set()当给未定义的变量赋值时会自动调用的方法
__get()当获取未定义变量的值时会自动调用的方法
__construct()构造方法,实例化类时自动调用的方法
__destroy()销毁对象时自动调用的方法
__unset()当对一个未定义变量调用unset()时自动调用的方法
__isset()当对一个未定义变量调用isset()方法时自动调用的方法
__clone()克隆一个对象
__tostring()当输出一个对象时自动调用的方法
116.$_REQUEST、$_POST、$_GET、$_COOKIE、$_SESSION、$_FILE的意思是什么?
答;
它们都是PHP预定义变量。
$_REQUEST用来获取post或get方式提交的值。
$_POST用来获取post方式提交的值。
$_GET用来获取get方式提交的值。
$_COOKIE用来获取cookie存储的值,
$_SESSION用来获取session存储的值,
$_FILE用来获取上传文件表单的值
117.数组中下标最好是什么类型的,为什么?
答:
数组的下标最好是数字类型的,数字类型的处理速度快。
118.++i和i++哪一个效率高,为什么?
答:
++i效率比i++的效率