① (100分懸賞)幾道php題,速度快,准確高的多加200分
填空選擇題
1、在ASP頁面中用以下語句聲明<script language=VbScript _2___=server>腳本</script>,要求能在伺服器端運行VbScript腳本
2、把數值型轉換為字元串型的VbScript函數是_ CStr 3_;把字元串轉換為整數 VbScript函數是¬¬¬5¬cint()
3、HTML標記,可單獨使用或嵌入在各個ASP腳本單元中,以" __1____"為定界符; VBScript(或JScript)語句,可單獨使用或嵌入在各個ASP腳本單元中,以___9______為定界符,通過對"__2______"屬性的設置來決定是否在伺服器端運行;
ASP腳本命令,可單獨使用或包含在此和〈/html〉內,以"_____7____"為定界符
4、一段連接ACCESS資料庫的代碼
<% set conn=server.creatobject("adodb.connection")
Connstr= "DSN=____4___;UID=___6_____;PWD=;」
conn.open Connstr
%>
5、Session對象保存的用戶信息是存儲在___10_____;Cookie對象保存的用戶信息是存儲在____8_____
選項:
(1)< 和 〉 (2)runat (3)cstr (4)數據源的名稱 (5)cint
(6)資料庫的用戶名 (7)<% 和 %> (8)客戶端(9)<Script>和</Script> (10)伺服器端
三、判斷題
1、Vbscript只有一種數據類型,稱為Variant ( 1 wrong)
2、資料庫中的數據中最不可能為空值的是外鍵 ( 2 wrong)
3、Vbscript腳本語言不區分大小寫,而JavaScript區分大小寫 (right )
4、在特定的asp頁面中指定主要的腳本語言,格式為<%@ language=Language of Script%>,這一行聲明可以放在ASP頁面的任何位置 ( wrong)
5、一個包含動態腳本的ASP頁面直接雙擊,該頁面的內容不能正常顯示。( wrong)
6、刪除student表中學號為『200501012『的學生信息的SQL語句為
delete * from student where StudentID=』 200501012』 (right )
7、Vbscript聲明變數的時候用var;JavaScript聲明變數的時候用dim (wrong )
8、<%response.write Server.HTMLEncode(「<font color=』red』>顏色</font>」)%>將會以紅色的字體顯示「顏色」。( wrong)
9、ASP中request語句主要是用於用戶接收伺服器的數據 (wrong )
10、在用瀏覽器訪問某個網站的頁面時,可通過查看源文件的方式,修改網頁的源代碼( wrong)
四、問答題
1、ASP的工作原理 :用iis服務以網頁的形式瀏覽asp文件,
2、<form name="form1" method="post" action="">
<form name="form1" method="get" action="">
簡述Post和get方法的區別,並指出接收數據時用到的對象與方法
通過get方法提交數據,可能會帶來安全性的問題。比如一個登陸頁面。當通過get方法提交數據時,用戶名和密碼將出現在URL上。如果:
1、 登陸頁面可以被瀏覽器緩存;
2、 其他人可以訪問客戶的這台機器。
那麼,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,get方法會帶來嚴重的安全性問題。
建議 :在Form中,建議使用post方法。
post請求無長度限制(至少是理論上的)
表單提交中get和post方式的區別歸納如下幾點:
1. get是從伺服器上獲取數據,post是向伺服器傳送數據。
2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的數據。
4. get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。
get有長度限制,最長不超過2048位元組(1024個漢字)
② PHP一道選擇題
答案: C
解釋:
在php語言里,對於數字式字元與數字如何參與運算,在具體情況下會視情來確定,請比較以下代碼:
echo "3+4+5";結果:3+4+5
為什麼會1+2+"3+4+5"結果會是6呢?
echo這個函數(或說是指令),其後跟的參數可以是字元串,也可以是需要運算的表達式,當出現:
echo "3+4+5";echo會認為這是個字元串
而echo 1+2+"3+4+5";echo會認為這是個表達式,所以會對這個表達式進行運算。
在這個運算過程中,1+2等於3,那麼為什麼"3+4+5"為什麼會等於3呢?因為,在php中,對於運算式中,不同數據類型的數據在參與數據時,php會進行數據轉換,以盡量確保使表達式成功運行,在"3+4+5"前面的運算符是 + ,那麼,php會將"3+4+5"當作數值類型,此時會隱式地進行數據類型的轉換,將這個字元串轉換成數值,而"3+4+5"轉換成數值的結果就是3,所以,整個表達式的結果是:1+2+3 = 6。
為更好的理解,作為對比,你可以參考以下代碼:
echo 1+2 . "3+4+5";
結果:
33+4+5
③ 很基礎的PHP程序員題目,要求具體步驟,一步一步的,不要解說,PHP我不會。拜託各位~題目如下。
$dsn = "mysql:dbname=shop;host=127.0.0.1";
$root = 'root'雀升喚;
$pwd = '';
$pdo = new pdo($dsn,$root,$pwd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$sql = "select count(id) from shop";
$stmt = $pdo->query($sql);
$rowcount = $stmt->fetch(PDO::FETCH_ASSOC);
$rowpage = 5;
$pages = ceil($rowcount/$rowpage);
$nowpage = !empty($_GET['p']) ? intval($_GET['p']) : 1 ;
$prov = $nowpage - 1 < 1 ? 1 : $nowpage-1;
$next = $nowpage +1 >$pages ? $pages : $nowpage+1;
$start = ($nowpage-1)*$rowpage;
$sql1 = "select id, name, price, num from shop order by id limit $start,$rowpage";
$stmt1 = $pdo->query($sql1);
$info = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$nowrows = $start+$rowpage;
print_r($info);
echo "總記錄數:$rowcount總頁數:$pages當前頁數:$nowpage當前頁的笑戚開始:$start結束記錄數:$nowrows<a href='page.php?p=1'>首頁</a><a href='page.php?p=$pages'>尾頁</a><a href='page.php?p=$prov'>上一頁</a><a href='page.php?p=$next'>頃凱下一頁</a>"
④ PHP應聘筆試題
題目一:
<?php
echo -10%3;
?>
答案:-1。
考查:優先順序。因為-的優先順序比%求余的優先順序低,也就是-(10%3)。
題目二:
print (int)pow(2,32);
答案:0
題目三:
//file1.php
<?php
$a = '123';
?>
//file2.php
<?php
echo include('file1.php');
?>
答案:1.
考查:返回值。因include()也是一個函數,有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。
題目四:
<?php
$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();
?>
答案:1.
考查:static和++。因static $count,所以只在第一次調用get_count的時候對$count賦值為0,第二次再進來這個函數,則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,後者先++再返回。
題目五:
<?php
$arr= array(0 =>1,'aa' =>2,3,4);
foreach($arr as $key => $val){
print($key == 'aa' ? 5 : $val);
}
?>
答案:5534.
考查:類型轉換。因遍歷數組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉換類型,將字元串轉換為數字再與數字比較。所以0=='aa'就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。
題目六:
<?php
echo count (false);
$a = count ("567") + count(null)
+ count(false);
echo $a;
?>
答案:2.
考查:count的用法。
因count()的官方解釋「If the parameter
is not an array or not an object
with implemented Countable
interface, 1 will be returned.」.意思是說,如果不是數組或者對象的其他類型,返回1.那麼這個值應該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數函數中還能有1?
題目七:
<?php
$arr = array(1,2,3);
foreach($arr as &$val) {
$val += $val % 2 ? $val++ : $val--;
}
$val = 0;
print(join('',$arr));
?>
答案:330。
考查:++和&。
因foreach結束後的數組應該是array(3,3,7);最後給第三個元素賦值為0,所以就是330了。其中注意的是&,如果有&則是對原變數操作,如果沒有,則是先生成一個新變數,然後給這個變數復制,最後操作的是這個新變數。
題目八:
<?php
echo intval((0.1+0.7)*10);
?>
答案:7。
考查:浮點數的概念。
因0.1+0.7=0.8 0.8*10=8 所以轉換成整數後還是8?錯!因為0.1+0.7=0.8是浮點數,0.8*10在數學計算中是正整數8,可是在計算機中它仍然是浮點數8,什麼叫浮點數8?每一個看起來像整數的浮點數,其實都不是整數,比如這個8,它其實只是
7.9999循環,無限接近於8,轉換成整數會舍棄小數部分,就是7嘍。
題目九:
<?php
ini_set('display_errors',0);
$arr = array(1=>1,3=>3);
$i = 2;
$a = 'test' . isset($arr[$i]) ?
$arr[$i] : $i;
請問$a的值是什麼?
A、test B、NULL C、2 D、test2
?>
答案:B。
考查:優先順序因「."的優先順序高於三元運算符"?:"。所以程序其實報錯了。會說$arr的索引2不存在。
題目十:
<?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . " " . $b;
?>
A、6 8 B、6 6 C、2 6 D、1 6 E、4 6
答案:D。
考查:優先順序,基礎概念,++。因「="的優先順序低於「||」,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最後其實給a賦值了,$a等於1.