《PHP面試題第九回》要點(diǎn):
本文介紹了PHP面試題第九回,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
1、HTTP狀態(tài)中的301和302是什么意思?二者有何不同?
301,302 都是HTTP狀態(tài)的編碼,都代表著某個(gè)URL發(fā)生了轉(zhuǎn)移,不同之處在于:
301 redirect: 301 代表永久性轉(zhuǎn)移(Permanently Moved).
302 redirect: 302 代表暫時(shí)性轉(zhuǎn)移(Temporarily Moved ).
2、如何用正則表達(dá)式獲得一個(gè)頁面內(nèi)容中所有圖片的地址?
<script type="text/javascript">
//思路分兩步
//1,匹配出圖片img標(biāo)簽(即匹配出所有圖片),過濾其他不需要的字符
//2.從匹配出來的結(jié)果(img標(biāo)簽中)循環(huán)匹配出圖片地址(即src屬性)
var str = "this is test string <img src=\"http:yourweb.com/test.jpg\" width='50' > 123 and the end <img src=\"所有地址也能匹配.jpg\" /> 33! <img src=\"/uploads/attached/image/20120426/20120426225658_92565.png\" alt=\"\" />"
//匹配圖片(g表示匹配所有結(jié)果i表示區(qū)分大小寫)
var imgReg = /<img.*?(?:>|\/>)/gi;
//匹配src屬性
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
var arr = str.match(imgReg);
alert('所有已成功匹配圖片的數(shù)組:'+arr);
for (var i = 0; i < arr.length; i++) {
var src = arr[i].match(srcReg);
//獲取圖片地址
if(src[1]){
alert('已匹配的圖片地址'+(i+1)+':'+src[1]);
}
//當(dāng)然你也可以替換src屬性
if (src[0]) {
var t = src[0].replace(/src/i, "href");
//alert(t);
}
}
</script>
3、Const和static二者有哪些相似和不同?
(1) static
static關(guān)鍵字在類中是,描述一個(gè)成員是靜態(tài)的,static能夠限制外部的訪問,因?yàn)閟tatic后的成員是屬于類的,是不屬于任何對(duì)象實(shí)例,其他類是無法訪問的,只對(duì)類的實(shí)例共享,能一定程序?qū)υ摮蓡T盡心保護(hù).類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實(shí)例共享,類的靜態(tài)方法也是一樣的,類似于全局函數(shù).類的靜態(tài)方法能訪問類的靜態(tài)的屬性.另外說明的是,static的成員,必須使用self來訪問,使用this會(huì)出錯(cuò).
(2)const
const是一個(gè)定義常量的關(guān)鍵字,類似于C中的#define,能夠定義一個(gè)常量,如果在程序中改變了它的值,那么會(huì)出現(xiàn)錯(cuò)誤.
4、已知任意一個(gè)合法日期,如何算出那一天所在星期的周一是幾月幾號(hào)?
<metacharset="utf-8">
<?php
date_default_timezone_set('PRC');
function zhuanhuan($strtime){
$time=strtotime($strtime);
$xingqi=date('w',$time);
switch($xingqi){
case 0:
echo date("Y-m-d",$time-3600*24*6);
break;
case 1:
echo date("Y-m-d",$time);
break;
case 2:
echo date("Y-m-d",$time-3600*24);
break;
case 3:
echo date("Y-m-d",$time-3600*24*2);
break;
case 4:
echo date("Y-m-d",$time-3600*24*3);
break;
case 5:
echo date("Y-m-d",$time-3600*24*4);
break;
case 6:
echo date("Y-m-d",$time-3600*24*5);
break;
case 6:
echo date("Y-m-d",$time-3600*24*6);
break;
default:
echo "呵呵";
}
}
zhuanhuan("2017-01-09");
//代碼輸出結(jié)果:2017-01-09
5、請寫出至少兩種獲取文件名中擴(kuò)展名的方法?
方法一
<?php
$path = "/usr/www/html/index.php";
$pathinfo = pathinfo($path);
//var_dump($pathinfo);
echo "擴(kuò)展名:$pathinfo[extension]";
?>
方法二
<?php
function extend_2( $file_name )
{
$extend = pathinfo ( $file_name );
$extend = strtolower ( $extend [ "extension" ]);
return $extend ;
}
echo extend_2('index.php');
6、如何以追加的方式打開一個(gè)文件進(jìn)行寫操作?
<?php
file_put_contents("test.txt", "This is another something.", FILE_APPEND);
?>
7、寫出代碼的執(zhí)行結(jié)果?
<?php
$a=null ;$b=false;echo $a==$b?'相等':'不想等';
echo "<br/>";
$a=0;$b=0;echo $a==$b?'相等':'不相等';
echo "<br/>";
$a='0';echo empty($a)?'true':'false';
echo "<br/>";
$a=null;echo empty($a)?'true':'false';
echo "<hr>";
$a='abc';printf('%d',count($a));
echo "<br/>";
$a=1;$b=&$a;$c=$a++;echo $a.$b.$c;
echo "<br/>";
$count=5;
function get_count(){
static $count=0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
echo "<br/>";
$GLOBALS['var1']=5;
$var2=1;
function get_value(){
global $var2;
$var=0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;
?>
8、已知一個(gè)函數(shù)如下
<?php
function output(array $arr){
foreach ($arr as $key =>$value)
echo $key.':'.$value,PHP_EOL;
}
/* 換行符
unix系列用 \n
windows系列用 \r\n
mac用 \r
PHP中可以用PHP_EOL來替代,以提高代碼的源代碼級(jí)可移植性
如:
<?php
echoPHP_EOL;
//windows平臺(tái)相當(dāng)于 echo "\r\n";
//unix\linux平臺(tái)相當(dāng)于 echo "\n";
//mac平臺(tái)相當(dāng)于 echo "\r";
?> */
?>
如果需要將次函數(shù)的輸出結(jié)果賦給一個(gè)變量(如$toobar),如何實(shí)現(xiàn)?
9、有如下內(nèi)容:
Group表
Group_id group_name
1 movie
2 music
Thread 表
Thread_id group_id username
1 1 matt
2 1 robi
3 2 robi
如何用一句sql語句得到如下的結(jié)果
group_id group_name count(group_id)
1 movie 2
2 music 1
請寫出相應(yīng)的sql語句:
create database gg characterset gbk;
use gg;
createtable you(
group_id intprimarykey auto_increment,
group_name varchar(20)
);
insertinto you values(' ','movie');
insertinto you values(' ','music');
createtable she(
thread_id intprimarykey auto_increment,
group_id intreferences you(group_id),
username varchar(20)
);
insertinto she values (' ',1,'matt');
insertinto she values (' ',1,'robi');
insertinto she values (' ',2,'robi');
select a.group_id, a.group_name,b.c 'count(group_id)'from you a ,
(select group_id, count(group_id) c from she groupby group_id) b
where a.group_id=b.group_id;
10、現(xiàn)有以下內(nèi)容
Id(int) name(text)
1 網(wǎng)友
2 網(wǎng)友
3 網(wǎng)友
4 網(wǎng)友
5 網(wǎng)友
請寫一個(gè)sql語句,把name字段更新成name+id
也就是變成網(wǎng)友1、網(wǎng)友2.........以此類推?
drop database name;
create database name characterset gbk;
use name;
createtable namet(
id intprimarykey auto_increment,
name text
);
insertinto namet values(' ','網(wǎng)友');
insertinto namet values(' ','網(wǎng)友');
insertinto namet values(' ','網(wǎng)友');
insertinto namet values(' ','網(wǎng)友');
insertinto namet values(' ','網(wǎng)友');
update namet set name=concat(name,id);
select * from namet;
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP面試題第九回》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6908.html