问题:
1、echo() print() 和print_r()的区别
答:echo是语言结构 ,无返回值;print()功能和echo基本相同 不同的是 print有返回值,返回值总是1
print_r是递归打印,用户输出数组对象,永远返回true
2、如何实现字符串的翻转?
strrev() 如果不准用PHP内置函数,那就自己实现一个
function str_fanzhuan($_str){
$len=strlen($_str);
$_newStr="";
for($i=$len;$i>=0;$i--){
$_newStr.=$_str[$i];
}
return $_newStr;
}
这就实现了字符串的翻转。
3、写出中文字符截取无乱码的方法
mb_substr()
4、使用PHP写一段简单的查询,查出所有姓名中为张三的内容并打印出来。
解题步骤:
1、连接数据库 指定数据库
2、指定查询字符集
3、简单的查询语句
4、遍历整个查询结果
5、关闭结果集 关闭数据库连接
header("Content-type:text/html;charset=utf-8");
define("HOST","127.0.0.1");
define("USER","root");
define("PASS","song");
define("DB","newcimie");
$mysqli=new mysqli(HOST,USER,PASS,DB);
if(mysqli_connect_errno()){
echo mysqli_connect_error();
echo "数据库连接错误";
exit;
}
print_r($mysqli->client_info);
echo "
";
print_r($mysqli->field_count);
echo "
";
print_r($mysqli->server_info);
echo "
";
print_r($mysqli->host_info);
echo "
";
exit;
$mysqli->set_charset("utf8");
$sql="select id,title from web_ads";
$res=$mysqli->query($sql);
$_data=[];
if($res){
while($_obj=$res->fetch_object()){
$_data[]=$_obj;
}
}
$res->close();
$mysqli->close();
print_r($_data);
$conn=mysql_connect("127.0.0.1:3306","root","song");
if(!$conn){
echo "数据库连接错误";
echo mysql_error();
exit;
}
mysql_select_db("test");
mysql_query("set names utf8");
$_res=mysql_query("select * from web_aa");
$_data=array();
if($_res){
while($_obj=mysql_fetch_object($_res)){
$_data[]=$_obj;
}
}
echo mysql_num_rows($_res);
mysql_free_result($_res); //释放结果集内存
mysql_close();
print_r($_data);
/*
mysql_affected_rows() 返回上次sql语句影响的条数
mysql_last_id() 返回上一步 INSERT 操作产生的 ID
mysql_query($sql) — 发送一条 MySQL 查询
mysql_result($_res) — 取得结果数据
mysql_select_db("test") — 选择 MySQL 数据库
mysql_set_charset("utf8") — 设置客户端的字符集
*/
5、mysql_pconnect 和mysql_connnect() 的区别
当连接的时候,本函数先尝试寻找在同一个主机上用同样用户名和密码打开的(持久)连接,如果找到,则返回此连接表示,而不打开新连接。其次当脚本执行完毕后,到sql服务器的连接不会被关闭。此连接将保持打开状态以备以后使用(mysql_close()不会关闭由 mysql_pconnect() 打开的连接)
6、请看下面代码,并写出 b.php得到的结果html>
我是页面 ab.php
var_dump($_POST['c']);
echo "
";
var_dump($_POST['a']);
?>
请问 $_POST['c'] 的结果是什么 ? $_POST['a'] 的结果又是什么
答案: $_POST['c'] 结果 NULL $_POST['a'] 结果 NULL
并会提示 Notice: Undefined index: c in 的一个错误提示
7、错误提醒级别:
error_reporting(0); //关闭所有的PHP错误
// 关闭所有PHP错误报告
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 报告 E_NOTICE也挺好 (报告未初始化的变量
// 或者捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);
// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);
// 报告所有 PHP 错误
error_reporting(-1);
// 和 error_reporting(E_ALL); 一样
ini_set('error_reporting', E_ALL);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
1 E_ERROR 致命的运行时错误
2 E_WARNING 运行时警告(非致命性错误)
4 E_PARSE 编译时解析错误
8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)
16 E_CORE_ERROR PHP启动时初始化过程中的致命错误
32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)
64 E_COMPILE_ERROR 编译时致命性错
128 E_COMPILE_WARNING 编译时警告(非致命性错)
256 E_USER_ERROR 用户自定义的致命错误
512 E_USER_WARNING 用户自定义的警告(非致命性错误)
1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)
2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)
8、PHP的八大类型
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
9、删除PHP数组中头部、尾部、任意元素的实现代码
删除头部:array_shift(array)
删除尾部:array_pop(array)
array_push($arr,["id"=>15,"name"=>"asdf"]) 放在数组尾部一个元素
array_unshift($arr,["id"=>1,"name"=>"asdf"]); 放在数组的第一个
删除任意元素的代码: unset($array[5]) unset($array[8])
10、获取文件的创建时间、最后访问时间、修改时间
fileatime($file) 获取上一次的访问时间
filemtime($file) 获取上一次修改时间
11、将数组中重复的元素去掉,使用哪个函数?
array_unique
只是用于一维数组
12、写出计算时长的一个函数 几秒前 几分钟前 几小时前 几天前//写出计算时长的一个函数 几秒前 几分钟前 几小时前 几天前
function formatTime($_time){
//如果是时间戳,则不用转换,如果不是,需要进行转换
if(!(is_numeric($_time) && strlen($_time)==10)){
$_time=strtotime($_time);
}
$_nowtime=time();
$_diff=$_nowtime-$_time;
$day=60*60*24;
$hour=60*60;
$fen=60;
$_str="";
if($_diff>$day){
$_str=floor($_diff/$day)."天前";
}else if($_diff>$hour){
$_str=floor($_diff/$hour)."小时前";
}else if($_diff>$fen){
$_str=floor($_diff/$fen)."分钟前";
}else{
$_str=$_diff."秒前";
}
return $_str;
}
echo formatTime("2017-11-16 11:29:44");
13、html代码在页面上显示,请问使用哪个函数?
htmlentities($str); 此函数是有第二个参数的,意思就是转义的范围 ENT_COMPAT(默认,只解释双引号 不解析单引号) ENT_QUOTES( 单双引号都解析)
或 htmlspecialchars()
本函数各方面都和一样, 除了htmlentities()会转换所有具有 HTML 实体的字符
它的反函数 : html_entity_decode() htmlspecialchars_decode()
14、将所有代码去掉html标签,并保留 a 标签
strip_tags($str,"") 去掉 $str 中的标签,保留a标签 如果保留多个标签"
15、写出php把字符转换成大写、小写、首字母大写 的函数
strtoupper() //全部小写
strtolower() //全部大写
ucfirst() //单词首字母转换成大写
ucworlds() //所有单词首字母均转换成大写
16、如何获取当前执行脚本路径,包括所得到的参数$_SERVER['REQUEST_URI'];
echo $_SERVER['PHP_SELF'];
//返回文件名 如果带有pathinfo路径,照样会返回pathinfo路径的内容
echo "
";
echo $_SERVER['SCRIPT_NAME'];
//只返回文件路径和文件名
$_SERVER['REQUEST_URI']
$_SERVER['QUERY_STRING'] //返回url中的参数部分
$_SERVER['SCRIPT_FILENAME'] //返回当前执行脚本文件的绝对地址
$_SERVER['HTTP_HOST'] //返回当前url的域名
$_SERVER['HTTP_USER_AGENT'] //返回来访者设备的参数信息
18、如何判断是不是ajax请求?
判断header头中是否包含有 X-Requested-With 如果包含有,是否等于 XMLHttpRequest 如果也是,那么就是ajax请求了。
public function isXmlHttpRequest()
{
return 'XMLHttpRequest' == $this->headers->get('X-Requested-With');
}
17、请写出以下 的值 是什么
$a="false"
empty($a) ---------->false;
is_null($a) ---------->false
isset($a)---------->true
if($a) ----------> true
gettype($a)------->string
Linux基础考察点:
写出尽可能多的linux命令?
mount
shutdown
reboot
unmount
useradd
groupadd
userdel
ping
netstat
ifconfig
hostname
ssh
clear
who
yum
locate
find
head
tail
less
more
ln 建立连接 加上 -s 就是软连接
touch
unlink
rename
mv
pwd
ls
cp
rm
chown
chgrp
zip
unzip
ftp
scp
定时任务
crontab -e
crontab -l
* * * * * 命令 (分时日月周)
at命令:
at 2:00 tomorrow
at>/home/jason/do_job
at>ctrl+d 退出
shell基础
开头使用 #!指定脚本解释器,例如 #!/bin/bash
编写具体功能