- Get和Post的异同点
- HTML的base标签是干什么用的
- echo(),print(),print_r()的区别
- 写一个email的正则表达式
- 数组[‘a’, ‘b’, ‘c’] 转换成字符串 ‘abc’
- 获取字符串’aAbB’中A首次出现的位置
- 编写一段用最小代价实现将字符串完全反序, e.g. 将 “1234567890” 转换成 “0987654321”. (用前述你最熟悉的语言编写并标注简单注释, 不要使用函数
- 请用递归实现一个阶乘求值算法 F(n): n=5;F(n)=5!=5_4_3_2_1=120
- 将字符长fang-zhi-gang 转化为驼峰法的形式:FangZhiGang
- 数组内置的排序方法有哪些?
- 用PHP写出显示客户端IP与服务器IP的代码
- 语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
- session与cookie的区别
- PHP 不使用第三个变量实现交换两个变量的值
- 写一个方法获取文件的扩展名
- 用PHP打印出前一天的时间格式是2017-3-22 22:21:21
- 对于大流量的网站,你会采用什么方法来解决访问量?
- PHP 如何接口调用?
- 用PHP header()函数实现页面404错误提示功能
- javascript 判断弹出窗口是否被屏蔽程序代码
- php序列化和反序列化用的函数
- 利用下表结构,写出发贴数最多的十个人名字的SQL语句
- 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
- 下面的代码用来做什么?请解释。
- 在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(?)中;而链接到当前页面的URL记录在预定义变量(?)中。
- Composer是什么?Composer和PHP有什么关系?
- 团队协作怎么保证版本统一?
Get和Post的异同点
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
---|---|---|
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! |
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
HTML的base标签是干什么用的
必须写在head 中, base 标签为页面上的所有链接规定默认地址或默认目标
echo(),print(),print_r()的区别
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串
写一个email的正则表达式
/[1]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)+$/
数组[‘a’, ‘b’, ‘c’] 转换成字符串 ‘abc’
echo implode(‘’,[‘a’, ‘b’, ‘c’]);
echo join([‘a’, ‘b’, ‘c’],'');
获取字符串’aAbB’中A首次出现的位置
$str=‘aAbB’;
echo strpos($str,"A");
编写一段用最小代价实现将字符串完全反序, e.g. 将 “1234567890” 转换成 “0987654321”. (用前述你最熟悉的语言编写并标注简单注释, 不要使用函数
$s = '1234567890';
$o = '';
$i = 0;
while(isset($s[$i]) && $s[$i] != null) {
$o = $s[$i++].$o;
}
echo $o;
请用递归实现一个阶乘求值算法 F(n): n=5;F(n)=5!=5_4_3_2_1=120
function F($n){
if($n==0){
return 1;
}else{
return $n* F($n-1);
}
}var_dump(F(5));
将字符长fang-zhi-gang 转化为驼峰法的形式:FangZhiGang
//方法一
function Fun($str){
if(isset($str) && !empty($str)){
$newStr='';
if(strpos($str,'-')>0){
$strArray=explode('-',$str);
$len=count($strArray);
for ($i=0;$i<$len;$i++){
$newStr.=ucfirst($strArray[$i]);
}
}
return $newStr; }
}
//方法二
function Fun($str){
$arr1=explode('_',$str);
$str = implode(' ',$arr1);
return ucwords($str);
}
var_dump(Fun("fang-zhi-gang")); //FangZhiGang
数组内置的排序方法有哪些?
sort($array); //数组升序排序
rsort($array); //数组降序排序
asort($array); //根据值,以升序对关联数组进行排序
ksort($array); //根据建,以升序对关联数组进行排序
arsort($array); //根据值,以降序对关联数组进行排序
krsort($array); // 根据键,以降序对关联数组进行排序
用PHP写出显示客户端IP与服务器IP的代码
$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]
语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require
include有返回值,而require没有(可能因为如此require的速度比include快)
包含文件不存在或者语法错误的时候require是致命的错误终止执行,include不是
可以用include_once,require_once代替。
session与cookie的区别
session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短
PHP 不使用第三个变量实现交换两个变量的值
//方法一
$a.=$b;
$b=str_replace($b,"",$a);
$a=str_replace($b,"",$a);
//方法二
list($b,$a)=array($a,$b);
var_dump($a,$b);
写一个方法获取文件的扩展名
function get_extension($file){
//方法一
return substr(strrchr($file,'.'), 1);
//方法二
return end(explode('.', $file));
}echo get_extension('fangzhigang.png'); //png
用PHP打印出前一天的时间格式是2017-3-22 22:21:21
$a = date("Y-m-d H:i:s", strtotime("-1 days"));
对于大流量的网站,你会采用什么方法来解决访问量?
(1)首先确认服务器硬件是否满足支持当前的流量;
(2)优化数据库的访问;
(3)禁止外部盗链;
(4)控制大文件下载;
(5)使用不同的主机分流;
(6)使用流量分析统计;
PHP 如何接口调用?
public function authenticationApi($data,$url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//输出格式可以转为数组形式的json格式
$tmpInfo = curl_exec($ch);
curl_close($ch);
return $tmpInfo;
}
用PHP header()函数实现页面404错误提示功能
Header("HTTP/1.1 404 Not Found");
javascript 判断弹出窗口是否被屏蔽程序代码
var wroxWin =
window.open("http://www.111cn.net", "_blank");if (wroxWin == null) {
alert("糟糕!弹出窗口被屏蔽了");}
php序列化和反序列化用的函数
serialize() 序列化
unserialize() 反序列化
利用下表结构,写出发贴数最多的十个人名字的SQL语句
表名:members
字段:id,username,posts,pass,email
select memebers.username from members
group by posts desc limit 10
求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
// 方法一:用DateTime类
$day1 = '2003-09-16';
$day2 = '2011-11-23';
$d1 = new dateTime($day1);
$d2 = new dateTime($day2);
echo $d1->diff($d2)->days;
// 方法二,用时间戳计算
echo (strtotime($day2) - strtotime($day1))/(24*3600);
下面的代码用来做什么?请解释。
$date='08/26/2003';
print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);
这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:
// 对应一个或更多 0-9,后面紧随一个斜号$regExpression = “([0-9]+)/“;
// 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= “([0-9]+)/“;
// 再次对应一个或更多 0-9$regExpression .= “([0-9]+)”;至于 \2/\1/\3 则是用来对应括号,第一个括号对的是月份
在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(?)中;而链接到当前页面的URL记录在预定义变量(?)中。
(1) echo $_SERVER['PHP_SELF'];
(2) echo $_SERVER["HTTP_REFERER"];
Composer是什么?Composer和PHP有什么关系?
Composer是PHP的一个依赖(dependency)管理工具,在我们的项目中声明所依赖的外部工具库(libraries),Composer 可以帮助我们安装这些依赖的库文件。Composer可以全局安装也可以局部安装,默认不是全局安装的,是基于指定项目的某个目录进行安装的。
团队协作怎么保证版本统一?
安装组件使用composer install 而不是composer update,.lock文件加入版本控制当中。