新浪面試題


在網上看到別人的新浪面試題,拿過來留着自己學習。http://www.mianwww.com/html/2012/03/14142.html

1、COOKIE、SESSION的聯系和區別,多台web服務器如何共享SESSION?
使用session_start()調用session,服務器端在生成session文件的同時,生成session ID哈希值和默認值為PHPSESSID的session name,並向客戶端發送變量為(默認的是)PHPSESSID(session name),值為一個128位的哈希值.服務器端將通過該cookie與客戶端進行交互.
session變量的值經php內部系列化后保存在服務器機器上的文本文件中,和客戶端的變量名默認情況下為PHPSESSID的coolie進行對應交互.
即服務器自動發送了http頭:header(‘Set-Cookie: session_name()=session_id(); path=/’);
即setcookie(session_name(),session_id());
當從該頁跳轉到的新頁面並調用session_start()后,PHP將檢查與給定ID相關聯的服務器端存貯的session數據,如果沒找到,則新建一個數據集.
2、HTTP協議中的POST和GET有何區別?
   其中請求方法是請求一定的Web頁面的程序或用於特定的URL。可選用下列幾種:
  GET: 請求指定的頁面信息,並返回實體主體。
  HEAD: 只請求頁面的首部。
  POST: 請求服務器接受所指定的文檔作為對所標識的URI的新的從屬實體。
  PUT: 從客戶端向服務器傳送的數據取代指定的文檔的內容。
  DELETE: 請求服務器刪除指定的頁面。
3、一段php代碼,寫出輸出結果,

/**** 這個程序****/
$a=0;
$b=0;
if(($a=3)>0 || ($b=3)>0){

$a++;
$b++;

echo $a ;
echo $b; //輸出b的值
}
答案:4 1
/**** 這個程序****/
$a=0;
$b=0;
if(($a=3)>0 | ($b=3)>0){

$a++;
$b++;

echo $a ;
echo $b; //輸出b的值
}
答案:4 4
4、reqiure的include都可包含文件,二者的區別何在?
5、php中WEB上傳文件的原理是什么,如何限制上傳文件的大小?
1,上傳文件的表單使用post方式(和get的區別不用說了);還要加上enctype=’multipart/form-data’。
2,一般要加上隱藏域:,位置在file域前面。value的值是上傳文件的客戶端字節限制。據說可以減少文件超標時客戶端的等待時間,不過我沒覺得有什么區別。
3,出於安全考慮,file域是不許賦值的。隨便在file域輸入字符串,然后按submit也不會有反應。必須是第二個字符是冒號的時候(比如空格跟隨冒號可以上傳一個長度為0字節的“文件”),submit才同意“服務”——不過這個是客戶端的措施,跟MAX_FILE_SIZE一樣很容易繞過去。
限制上傳文件大小的因素有
1,客戶端的隱藏域MAX_FILE_SIZE的數值(可以被繞開)。
2,服務器端的upload_max_filesize,post_max_size和memory_limit。這幾項不能夠用腳本來設置。
3,自定義文件大小限制邏輯。即使服務器的限制是能自己決定,也會有需要個別考慮的情況。所以這個限制方式經常是必要的。
4,$_FILE['fn']['size']
is_uploaded_file() , move_uploaded_file()

6、寫一個函數,可以遍歷文件夾下的所有文件和文件夾。
function myscandir($path)
{
$files = array();
if($handle = opendir($path)){
while(($f = readdir($handle)) !== false){
$p = $path .’/’. $f;
if($f == ‘..’ || $f == ‘.’) continue;
if(is_file($p)){
$files[] = $f;
}elseif(is_dir($p)){
$files[$f] = myscandir($p);
}
}
closedir($handle);
}
return $files;
}
//$f = myscandir(‘./misc/doo’);
//print_r($f);
7、8、中間有幾個unix shell的題目(好像是兩個),因為不懂,不記得這些題目了
9、有mail.log的一個文檔,內容為若干郵件地址,其中用’\n’將郵件地址分隔。要求從中挑選出sina.com的郵件地址(包括從文件讀取、過濾到列印出來)。
mail.log內容如下:
[ft=#222266,,
[ft=#222266,,
[ft=#222266,,
[ft=#222266,,
[ft=#222266,,
答案:
cat mail.log | grep sina.com
或者:
#!/bin/bash
while read row ;
do
case $row in
*sina.com*) echo $row ;;
esac
done < mail.log

10、js中網頁前進和后退的代碼




11、window(A)中用window.open()打開了window(B),如何從窗口B調用窗口A中的內容?A、B僅僅是窗口的代號,不是窗口名字
window.opener.document.getElementById()
12、了解ajax嗎?用過嗎?……
var xmlhttp = new XMLHttpRequest();
var xmlhttp = new ActiveXObject(“Microsoft.XMLHttp”);
xmlhttp.open(‘get’,url,true);
xmlhttp.onreadystatechang=function(){
if(xmlhttp.readyState ==4){
if(xmlhttp.status==200){alert(xmlhttp.responseText);xmlhttp=null;}
}
}
xmlhttp.send(null);

Ajax.open(“POST”,url,true);
//如果是POST方式提交數據,下兩行必不可少
Ajax.setrequestheader(“content-length”,sendData.length);
Ajax.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
Ajax.send(sendData);//要POST的數據
13、什么是MVC?用過嗎?使用時遇到了什么問題,怎么解決的?

14.寫出 訪問 http://www.sina.com.cn 所需的報文頭,嘿嘿,這是超級豬自己想起來地。
答案:可以用get_heards(http://www.sina.com.cn)查看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM