1. php 使用 ajax局部刷新 实现查询功能
html文件如下:
<form>
名字:<input type="text" name="name" id="name" >
<input type="button" name="btn" id="btn" value="查询">
</form>
<script>
$(function(){
$("#btn").click(function(){
$.ajax({
"dataType": 'json',
"type": "POST",
"url": "ajax.php",
"data": {'name':$("#name").val()},//获取表单中id是name的值
"success": function(obj){//提交成功
alert(obj.msg);
},
"error":function(){//提交失败
alert('error');
}
});
})
})
</script>
ajax.php页面
<?php
$name = $_POST['name'];
//做数据库查询
//查询到数据存在,成功
if($success){
exit(json_encode(array('errno'=>0,'msg'=>'success')));
}else{
//查询不到数据,失败
exit(json_encode(array('errno'=>1,'msg'=>'error')));
}
2. 2022年PHP面试题附答案(实战经验)
1、面向对象是一种程序设计方法,它提升了代码的重用性和清晰度。主要特征包括封装、继承和多态性。
2、SESSION和COOKIE的区别在于,SESSION存储在服务器端,而COOKIE保存在客户端。SESSION相对安全,因为可以通过某些手段修改COOKIE,而SESSION依赖于COOKIE传递信息。禁用COOKIE后,SESSION无法正常工作。然而,SESSION需要服务器资源读取,且文件路径由php配置文件指定,文件是公有的。
3、HTTP状态码302表示临时重定向成功,即请求内容已转移到新位置。403表示禁止访问,500表示服务器内部错误。
4、数据类型包括:整数(int)、定长字符(char)、变长字符(varchar)、日期时间型(datetime)和文本型(text)。VARCHAR与CHAR的区别在于,CHAR是固定长度的字符类型,而VARCHAR是可变长度的,能更有效地节省空间。然而,处理VARCHAR类型时,服务器需要进行额外的操作,导致效率较低。
5、MyISAM和InnoDB之间的基本区别在于,MyISAM不支持事务处理,表锁,且易产生碎片,但读写速度较快,适合频繁查询应用。而InnoDB支持事务,行锁,有崩溃恢复能力,适合插入和更新操作较多的应用,尽管空间占用更大,不支持全文索引。
6、isset()函数用于判断变量是否存在,可以同时检查多个变量,而empty()则判断变量是否为空。
7、在PHP中,传值和传引用的区别在于,按值传递时,函数范围内的值更改不会影响外部变量;按引用传递时,函数范围内的值更改会影响到外部变量。
8、error_reporting函数用于设置PHP的报错级别,并返回当前级别。
9、缓存技术是将动态内容缓存在文件中,在一定时间内访问动态页面时直接调用缓存文件,避免重新访问数据库。
10、MVC结构分别指业务模型、视图和控制器,通过控制器调用模型处理数据,并将数据映射到视图层显示,以实现代码重用性和M和V的代码分离。
11、AJAX是一种异步传输技术,能够通过JavaScript实现局部刷新,减轻服务器压力,提高用户体验。
12、提高程序运行效率的方法包括优化SQL语句、创建索引、生成缓存等。
13、对于大流量网站,采用缓存、负载均衡、CDN存储加速、减少数据库使用、查看瓶颈及反向代理等方法解决访问量问题。
14、include和require的区别在于,include在失败时产生警告,而require则产生错误中断。require_once和include_once可以避免重复包含同一文件。
15、foo()和@foo()的区别在于@代表忽略所有警告。
16、PHP的垃圾收集机制回收不再使用的变量容器,确保内存的有效使用。
17、实现PHP安全的最大化,避免SQL注入和XSS攻击,需遵循基本原则:不展示服务器或程序细节,不相信用户提交的数据。
18、echo用于简单输出,print是函数且有返回值,print_r和var_mp用于打印数组和对象,同时提供数据类型信息。
19、Smarty模板速度快,支持编译型、缓存技术、插件机制和强大的表现逻辑。
20、PHP通过header函数实现页面跳转,可以设置跳转的网址或延迟时间。还可以利用meta元素实现跳转。
21、将GB2312格式的字符串转换为UTF-8格式,可以使用iconv函数。
22、在数据入库前,使用htmlspecialchars或htmlentities函数处理用户输入内容,避免SQL注入和XSS攻击。
23、CSRF攻击是跨站请求伪造,XSS攻击是跨站脚本攻击,防范策略包括合理规范API请求、使用token验证和过滤输入。
24、在开发中,注意防远程提交、防SQL注入、防止注册机灌水和使用验证码等安全机制。
25、JSON是一种轻量级数据交换格式,json数据格式固定,适用于多种语言的数据传递。
26、事务是一系列数据库操作的逻辑单位,具有原子性、一致性、隔离性和持久性。
27、锁是实现数据库并发控制的技术,确保数据库状态的一致性。
28、索引加速数据检索,提高查询效率,但也减慢数据录入速度并增加数据库尺寸。
29、三个范式的定义涉及属性的原子性、记录的唯一性及字段的冗余性。
30、主键、外键和索引的区别在于定义、作用和个数。
31、private、protected和public修饰符分别代表私有、保护和公共访问权限。
32、堆和栈的区别在于堆是动态分配的内存空间,而栈是静态分配且大小明确。
33、魔术方法包括实例化、析构、属性设置、属性获取、条件检查、序列化、克隆等。
34、$this、self和parent分别代表当前对象、当前类和当前类的父类。
35、::操作符用于调用类常量和静态方法。
36、__autoload()函数在类实例化时自动加载类文件。
37、高并发网站解决方案包括前端优化、服务端优化、数据库优化和Web服务器优化。
38、PHP遍历文件夹下所有文件的方法,可以通过递归函数实现。
39、在命令行中运行php程序的步骤包括显示当前PHP版本、加载有效模块、输出phpinfo、传递参数等。
40、检查PHP脚本和数据库SQL效率的方法包括代码计时、xdebug分析、系统调用跟踪等。
41、大流量网站访问量统计问题的解决方案包括确认服务器负载、优化数据库访问、防止盗链、控制文件下载等。
42、MySQL数据库优化策略涉及数据库结构设计、字段类型选择、添加索引、主从读写分离、分表等。
43、MyISAM和InnoDB存储引擎的区别包括事务支持、性能、索引类型等。
3. PHP页面怎么完成局部刷新
这跟 PHP 无关,是ajax技术,jQuery对其进行了封装,使用也相当方便。不过要实现这个技术你得对js相当熟悉才能得心应手的使用。否则只能别用了,全部代码是不太可能了,下面是核心的代码:
$.ajax({
type: "POST",
url: "/layout/set/popup/content/collectedinfo/"+$("#home-poll-node-id").val(),
async: false,
data: $("#home-right-poll").serialize(),
success: function( responseText ){
$("#poll-result").css({
"border": "solid 1px #cccccc",
"padding": "10px",
"margin-top": "1px"
});
$("#poll-result").show();
$("#poll-result").html( responseText );
$("#poll-content").hide();
$("#home-right-poll .loading").hide();
}
});
别的东西还得你自己写了。
4. 怎样局部刷新网页
大体有两种方法:
一种方法是使用框架,每一个框架内都可以载入一个完整的网页,弊键而在框架所在的网页内,则会体现出“局部刷新”的效果。
另一种方法是使用Ajax,异步载入需要的数据后,使用JS对HTML文档 的DOM结构进行更改,实团搜现“局部刷新”的效果。
你可以在以下文章中了解具体知识:
参考资料:
【HTML框架】http://www.w3school.com.cn/html/html_frames.asp
【AJAX简介租或巧】http://www.w3school.com.cn/php/php_ajax_intro.asp