php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习)
php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习)
一、总结
1、无线分类的本质是树(数据结构)(数的话有多种储存结构可以实现,所以对应的算法也有很多),想到这一点你有一万种方法来实现无限分类
2、反斜杠(\)表示转义字符,在php和php正则中都是这样,c的话\n,echo preg_replace(‘’/(\d+)\/(\d+)\/(\d+)/,’$3$1$2’,$date);
二、php 面试题一
1,用 PHP 获取当前时间并打印,打印格式:2006-5-10 22:21:21
date_default_timezone_set('PRC');
echo date('Y-n-d H:i:s');
2,字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找的函数分别是什么?
1) $str='www.baidu.com';
print_r(str_split($str));
explode()
2) $arr=array("aaa","bbb","ccc");
print_r(implode('',$arr)); //join()
3)substr($str,1,10); mb_substr mb_strcut
4) $bodytag = str_replace("%body%", "black", "<body text='%body%'>");
preg_replace();
5) $string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '\${1}1,\${3}';
echo preg_replace($pattern, $replacement, $string);
6)preg_match()
preg_grep()
strstr()
strpos()
strrpos()
3,解释一下 PHP 的类中:protect,public,private,interface,abstract,final,static 的含义
1)protect 被保护的
2)public 公有的
3)private 私有的
4)interface 接口
5)abstract 抽象类
6)final 最后的类和方法
7)static 静态方法和属性
4, 写出下列代码的数据结果
$date='08/26/2003'; 2003/08/26
1) $date='08/26/2003';
echo preg_replace("/([0-9]+)\/([0-9]+)\/([0-9]+)/","\${3}/\${1}/\${2}",$date);
echo preg_replace(‘’/(\d+)\/(\d+)\/(\d+)/,’$3$1$2’,$date);
5,从表 login 中选出 name 字段包含 admin 的前 10 条结果所有信息的 sql 语句
1)select * from login where name like "%admin%" limit 10 order by id;
6,解释:左连接,右连接,内连接,索引
1)left join
2)right join
3)inner join
mysql> select t1.name,t2.addr from t1 inner join t2 on t1.id=t2.uid;
select t1.name,t2.addr from t1,t2 where t1.id=t2.uid;
mysql> select t1.name,t2.addr from t1,t2 where t1.id=t2.uid;
4)index
Alter table t1 add index in_name(name);
Alter table t1 drop index in_name;
Alter table t1 add primary key(id);
7,简述论坛中无限分类的实现原理。
1)一张表,有 id,pid
2)get
id pid name
prev > next
id name pid path
1 aaa 0 0
2 bbb 1 0-1 aaa
3 ccc 1 0-2
8,写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如:http://www.test.com.cn/abc/de/fg.php需要取出php或.php
parse_url
pathinfo
extension
basename
dirname
explode

三、另一份解答
1.date函数参数
Y
y
m
n
d
j
t
L
H
i
s
2.字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找
explode();
join();
substr();
mb_substr();
str_replace();
preg_replace();
preg_match();
3.左链接,右链接,内链接
user left join post on user.id=post.user_id
post right join user on post.user_id=user.id
user inner join post on user.id=post.user_id
#复习基础课中mysql的所有课程
4.无限分类
id name pid path
#高级课24号课程
5.从url地址中取出后缀
第一种:
<?php
$url='http://www.baidu.com/index.php';
$arr=pathinfo($url);
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
第二种:
<?php
$url='http://www.baidu.com/index.php';
$arr=explode('.',$url);
echo array_pop($arr);
?>
第三种:
<?php
$url='http://www.baidu.com/index.php';
$pos=strrpos($url,'.');
echo substr($url,$pos+1);
?>
6.mvc理解:
m model 数据模型
v view 模板视图
c control 类控制器
7.解决大访问量
web服务器:
至少两台以上服务器来提交对客户的请求,web服务器负载均衡,apache并发人数3000左右,nginx并发人数20000左右
mysql服务器:
多台mysql服务器对外提供sql响应,数据库服务器负载均衡
软件:
1)静态缓存
2)数据缓存
数据库:
1)字段加索引
2)分表
8.mysql优化
1)服务器优化
1)服务器负载均衡
2)数据库优化
1)myisam表引擎
3)表优化
1)分表
2)字段索引
4)sql语句优化
1)写sql语句时,where后面的字段尽量使用加索引的字段,而且要小心有的sql语句会让索引失效.
9.安全登录系统
1)验证码
2)限制登录时间
3)动态口令
4)短信验证
10.防sql注入
1)mysql服务器用户权限问题
2)用addslashes函数把表单数据进行转义处理
3)用htmlspecialchars函数把表单数据进行实体化
4)使用mysql预处理机制发送执行sql语句
5)及时给mysql软件更新补丁
11.防盗链
$_SERVER['HTTP_REFERER'];
#获取上一个页面的来源url,通过url中的域名或ip可以判断是否是来自本机的某一个脚本
12.heredoc标记
$str=<<<x
<html>
<head>
<title></title>
</head>
<body>
<div>
<h1>{$name}</h1>
<h1>{$name}</h1>
<h1>{$name}</h1>
<h1>{$name}</h1>
</div>
</body>
</html>
x;
13.运算符
<?php
$a=0;
$b=4;
if($a=3 || $b=5){
$a++; //true
$b++; //5
}
echo $a; //1
echo '<br>';
echo $b; //5
?>
<?php
$a=0;
$b=4;
if($a=3 & $b=4){
$a++;
$b++;
}
echo $a;
echo '<br>';
echo $b;
13.web服务器返回的状态码:
1)200 正常响应
2)404 文件找不到
3)302 地址重定向
4)403 拒绝访问
5)500 内部程序错误
6)304 没有更新
14.冒泡排序
function ss($arr){
for($i=0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++){
if($arr[$i]>$arr[$j]){
$x=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$x;
}
}
}
return $arr;
}
php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习)的更多相关文章
- iOS 视频开发学习
原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- Android 音视频开发学习思路
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...
- Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...
Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以 ...
- CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)
2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六) 的附加视 ...
- iOS音频与视频的开发(一)-使用AVAudioPlayer播放音乐、使用AVPlayerViewController播放视频
iOS的多媒体支持非常强大,它提供了多套支持多媒体的API,无论是音频.视频的播放,还是录制,iOS都提供了多种API支持.借助于这些API的支持,iOS应用既可以查看.播放手机相册中的照片.视频,也 ...
- video视频标签一些设置,包括封面、播放结束后的封面、视频占满屏幕的方式、视频播放暂停、展示控制栏、触发全屏播放事件
video视频标签一些设置,包括封面.播放结束后的封面.视频占满屏幕的方式.视频链接.视频播放暂停.展示控制栏.触发全屏播放事件 <video id="video" auto ...
- 学习笔记:Django开发网上教育平台(参考了慕课网的教学视频)
第一步:进行环境的搭建(用到的IDE:pycharm ,数据库为mysql.nacicat.编辑语言python3.7.以及自己配置的虚拟环境venvpy37) Django==2.2 配置好 ...
- 看一下我学习linux的过程
学习Linux的最佳方法是将它用于日常工作. 阅读Linux书籍,观看Linux视频不仅仅是足够的. 学习Linux没有捷径可走. 你不可能在一夜之间在Linux中掌握. 这需要时间和持久性. 刚刚潜 ...
随机推荐
- FFT之大数乘法
#include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> ...
- javafx checkbox
public class EffectTest extends Application { public static void main(String[] args) { launch(args); ...
- css3 transform:scale(x)实现字体的缩放:
css3 transform:scale(x)字体的缩放: transform:scale(x),针对于整体的缩放,缩放的整体包括宽,高,背景.这自然对于内联元素就无法使用此属性,最好使用无属性的sp ...
- xsy3320 string
xsy3320 string 题意: 给一颗树,每条边上有一个字符,求有多少条路径是回文的.(\(N\leq50000\),\(c\in\{1,2\}\)) 题解: 前置芝士:回文前缀& ...
- 【Django】信号调度
Django中提供了"信号调度",用于在框架执行操作时解耦. 通俗来讲,就是在某些动作发生时,信号允许特定的发送者去提醒一些接受者. * Django内置信号:** Model s ...
- factor---将素数分解为质数
- [Redux-Observable && Unit Testing] Use tests to verify updates to the Redux store (rxjs scheduler)
In certain situations, you care more about the final state of the redux store than you do about the ...
- ABAP调用外部WebService
TCode:se80 选择 Package,输入我们自己的开发包,后回车 右击 开发包名称,选择菜单 出现创建向导窗体 选择"Service Consumer",点击 继续 选择& ...
- BZOJ 1009 GT考试 (AC自动机 + 矩阵乘法加速dp)
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1009 题意: 准考证号为\(n\)位数\(X_1X_2....X_n(0<=X_ ...
- Java基础学习总结(38)——Lombok的使用和原理
一.项目背景 在写Java程序的时候经常会遇到如下情形: 新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter和setter方法 lombok项目的产生就是为 ...