PHP日常试题1.1

本文探讨了秒杀系统的架构设计策略,包括系统独立部署、商品页面静态化等技术手段,以应对高并发挑战。同时介绍了PHP编程技巧,如常量定义、数组操作及自动加载管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述这里写图片描述这里写图片描述
1.写出下列程序的输出结果

$arr=[0=>1,'aa'=>2,3,4];
foreach ($arr as $key => $val)
{
    print($key=='aa'?5:$val);//5,5,3,4
}
//第一次循环 key为0 'aa'等于零 字符串以第一个字符作判断 5
//第二次循环'aa'== 'aa' 是正确的 5
//其余两个的 目测就是不相同所以 原样输出;

2.以下两个循环分别执行几次?

for($i=0;$i=1;$i++){} //死循环
//因为第二个为条件,永远为1 ,不执行$i++;
for($i=0;$i==1;$i++){} //0次
//第二个条件为false; 直接forfalse)不循环

3、Linux 如何查看php的日志 tail -n 20 /usr/local/ lighttpd/log/php-error.log
4、php如何定义常量,如何定义变量

php定义常量define   类中定义常量 const

5、前端第三题
JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议
6、前端一题..

function checkall(){
        var checkall=document.getElementsByName('checkall')[0];
        var check=document.getElementsByName('check');
        for(var i=0;i<check.length;i++){
            if(checkall.checked==true){
                check[i].checked=true;
            }else{
                check[i].checked=false;
            }
        }
    }

系统架构 2题 秒杀活动设计专题

秒杀是电子商务网站常见的一种营销手段。原则
不要整个系统宕机。
即使系统故障,也不要将错误数据展示出来。
尽量保持公平公正。
实现效果
秒杀开始前,抢购按钮为活动未开始。
秒杀开始时,抢购按钮可以点击下单。
秒杀结束后,按钮按钮变成秒杀已结束。
技术攻关
短时间内的大访问量对现有网站业务造成的冲击。秒杀是一个网站营销的一个附加活动,时间短,并发量大。如果和网站原有应用部署在一起,必然会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。
高并发下对服务器数据库造成的极大负载压力。用户秒杀开始前,通过不断刷新浏览器来保证不会错过秒杀活动。频繁的访问程序、数据库会对应用服务器和数据库服务器造成负载压力。
网络带宽的问题比超过平时好多倍。如果秒杀页面的大小为200K,如果最大并发数为10000次,那么需要的网络和服务器带宽是2G(200K×10000)。这些网络带宽是因为秒杀活动新增的,超过网站平时使用的带宽。
避免直接下单。秒杀的游戏规则是到了秒杀才能开始对商品下单购买,在此时间点之前,只能浏览信息不可下单。而下单页面也是一个普通的URL,如果得到这个URL,不用等到秒杀开始就可以下单了。
应对策略
秒杀系统独立部署为了避免短时间内的大访问量对现有网站业务造成的冲击,可以将秒杀系统独立部署。如果需要还可以使用独立域名,使其与网站完全隔离。即使秒杀系统崩溃了,也不会对网站造成影响。
秒杀商品页面静态化将商品描述、参数、详情,全部写到一个静态页面,不用进行程序的逻辑处理,不需访问数据库。不用部署动态的服务器和数据库服务器。
租借秒杀活动的网络带宽因为秒杀新增的网络带宽,必须和运营商重新购买或租借带宽。为了减轻服务器的压力,需要将秒杀商品页面缓存在CDN,同样CDN服务器也需要临时租借带宽。
动态生成随机下单页面的URL为了避免用户直接访问下单URL,需要将URL动态化,用随机数作为参数,只能秒杀开始的时候才生成。
架构设计
如何控制秒杀商品页面抢购按钮的可用/禁用。购买按钮只有在秒杀开始的时候才能点亮,在此之前是灰色的,显示活动未开始。如果页面是动态生成的,每次刷新都要请求服务器,那么势必造成服务端的负载压力。如果页面是静态页面的话,可以将页面缓存在CDN,反向代理服务器上,甚至用户浏览器上。但是这样,秒杀开始时,用户刷新页面,根本请求不到应用服务器。解决方案:使用JS脚本控制,在页面中引用一个JS文件(文件极小),但是该文件不要被缓存。该JS的作用是,包含秒杀开始标志,修改样式,生成下单页面的URL及随机参数。该JS文件不被缓存的做法:xxx.js?v=随机数。会有一台服务器进行监控(定时上下架):当秒杀活动开始时推送该文件。当秒杀活动结束时推送文件,标示结束标志,修改样式。如下图。

浅谈秒杀系统架构设计-1
如何只允许,第一个提交的单进入订单系统。由于秒杀到商品的用户只有一个,因此需要在提交订单时,进行下单前置检查。如果已经有订单提交成功,表示活动结束,进入秒杀结束页面。事实上,订单数只能有一个,为了减轻下单页面服务器的负载压力,可以控制进入下单页面的入口。只有少数用户能进入下单页面,其他用户直接进入秒杀结束页面。(前置检查逻辑)检查本机已处理的下单请求数目:如果超过10条,直接返回已结束页面给用户。如果未超过10条,则用户可进入填写订单及确认页面。(前置检查逻辑)检查全局已提交订单数目:已超过秒杀商品总数,返回秒杀结束页面。未超过秒杀商品总数,提交到子订单系统。如下图。

浅谈秒杀系统架构设计-2
减库存的操作拍下减库存(用户体验好)付款减库存
下订单尽可能简单,购买数据为1且不可编辑,送货地址和付款方式为空或用户默认,允许订单提交后修改。

linux 第3题:
所有者可读可写可执行
同组用户可读可执行
其他用户可读可执行

php3题 array_intersect()

php__第一题:
为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置 php.ini中 session.use_trans_sid=1 ,表示当客户端浏览器禁止cookie的时候,页面上的链接会基于url传递SESSIONID。
在php.ini文件中
session.use_trans_sid=1
session.use_only_cookies=0
session.use_cookies=1

立花泷 2016/12/28 15:19:39
php 第8题
第一个代码a=20a = 10

mysql第二题:
mysql -uroot -proot 数据库名< sql文件所在位置

前段第二题:一般返回的数据类型有xml和json,xml是扩展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型。一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却包含很多重复的标记字符。

php 3题 两个数组进行如并集、交集和差集操作array_merge(),array_intersect(),array_diff().

php 6 题 spl_autoload_register 以很好地处理需要多个加载器的情况,这种情况下 spl_autoload_register 会按顺序依次调用之前注册过的加载器。作为对比, __autoload 因为是一个函数,所以只能被定义一次。

mysql 第一题
SQL语言共分为四大类:
一、数据查询语言DQL,

二、数据操纵语言DML ,
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE

三、数据定义语言DDL,
数据定义语言DDL用来创建数据库中的各种对象—–表、视图、
索引、同义词、聚簇

四、数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等

这里写图片描述

第二题 3$a\$a3336

第三题
一、用HTTP头信息 也就是用PHP的header函数。PHP里的header函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型(“Context-type: xxx/xxx”),页面的属性(“No cache”, “Expire”)等等。 用HTTP头信息重定向到另外一个页面的方法如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值