新浪php面試題

2021-05-05 02:24:32 字數 3053 閱讀 2286

網上轉的一篇文章,不知道真的是不是sina的,題目很普通。無論是不是真的新浪面試題,對於正在求職的同行來說,也算可以練練手的了。這些面試題都帶了答案,看著還行

1. echo count("abc"); 輸出什麼?

答:"1"

count —計算陣列中的單元數目或物件中的屬性個數

int count ( mixed $var [, int $mode ] ), 如果 var 不是陣列型別或者實現了 countable 介面的物件,將返回 1,有乙個例外,如果 var 是 null 則結果是 0。

對於物件,如果安裝了 spl,可以通過實現 countable 介面來呼叫 count()。該介面只有乙個方法 count(),此方法返回 count() 函式的返回值。

2. 用php寫出顯示客戶端ip與伺服器ip的**

答:$_server['server_addr'] 伺服器

$_server['remote_addr']客戶端

function getonlineip()

3. error_reporting(2047)什麼作用?

答:php 顯示所有錯誤 e_all

4. echo,print()和print_r()有什麼區別?

答:echo是乙個語言結構,沒有返回值。

print是乙個函式,返回int型別的值。[只能列印int string]

print_r()是乙個函式,返回bool型別值,按結構輸出變數的值。列印關於變數的易於理解的資訊[陣列、物件等]

5. 開啟php.ini中的safe_mode,會影響哪些函式?至少說出6個。

答:1:使用者輸入輸出函式(fopen() file() require(),只能用於呼叫這些函式有相同指令碼的擁有者)

2:建立新檔案(限制使用者只在該使用者擁有目錄下建立檔案)

3:使用者呼叫popen() systen() exec()等指令碼,只有指令碼處在safe_mode_exec_dir配置指令指定的目錄中才可能

4:加強http認證,認證指令碼擁有者的uid的劃入認證領域範圍內,此外啟用安全模式下,不會設定php_auth

5:mysql伺服器所用的使用者名稱必須與呼叫mysql_connect()的檔案的擁有者使用者名稱相同

6:受影響的函式變數以及配置命令達到40個

6. 寫個函式來解決多執行緒同時讀寫乙個檔案的問題。

答:flock($hander,lock_ex); 這個可是內建函式啊,

這個尚待解決

7. 請寫乙個函式驗證電子郵件的格式是否正確(要求使用正則)

答:preg_match('/^[\w\-\.]+@[\w\-]+(\.\w+)+$/', $email);

8. 考sql語句的題,題太長了,實在不好回憶了。

答:去理解別人的回憶是件很困難的事情

9. mysql資料庫,一天一萬條以上的增量,怎麼優化?

答:我們曾做過簡訊sp的東西,有個簡訊傳送的日誌表,每天增量也很大,處理的方法是按月進行分表,因為是日誌表,主要操作是insert操作,所以每月初自動生成新的資料表,資料插入到對應月份的那張資料表。[比如表明字首是cdb_smslog 後面加200910 及時cdb_smslog_200910]

其他優化方式暫時想不起來,對於myisam, 考慮容量的話,也有優化的方案

但是對於那種查詢操作的表的話,我的思路是根據作者的發布時間儲存到不同的表裡面

所以對sina那種海量資料的處理很感興趣,很好奇他們的處理方法,[以前同事說sina 的首頁同時操作10多個資料庫]

10. 寫出一種排序演算法(要寫出**),並說出優化它的方法。

答://氣泡排序

function maopao($arr) }}

return $arr;

}//順序排序

function shunxu($arr)

if($p != $i)

}return $arr;

}ps:有人說加個監控,計算陣列交換的頻度[這對冒泡], 比如冒泡的第一次操作頻度為0,則無需操作,直接返回,因為已經是排好序的陣列

11. 寫個函式用來對二維陣列排序。

答:function array_sort_by_any_row($array_name, $row_id, $order_type)

if($order_type==="asc") else

$result_array=array();

foreach($array_temp as $key=>$value)

return $result_array;

}$arr = array(array('num'=>5, 'value'=>6),

array('num'=>2, 'value'=>39),

array('num'=>36, 'value'=>29)

);$sortarr = array_sort_by_any_row($arr, 'num', 'desc');

print_r($sortarr);

12. 寫5個不同的自己的函式,來擷取乙個全路徑的檔案的副檔名,允許封裝php庫中已有的函式。

答:$path = str_replacefile__);

echo $path.'

';function extname1($path)

function extname2($path)

function extname3($path)

function extname4($path)

function extname5($path) ', basename($path));

}print_r(extname5($path));

13. 一群猴子排成一圈,按1,2,...,n依次編號。

然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去...,如此不停的進行下去,直到最後只剩下乙隻猴子為止,那只猴子就叫做大王。要求程式設計模擬此過程,輸入m、n, 輸出最後那個大王的編號。

答:yuesefu環問題,ppc有很多針對這個問題的處理,我的就不上啦

function yuesefu($n,$m)

return $r+1;

}print_r(yuesefu(3,3));

PHP面試題收藏

如何配置 使用和清除smarty快取?1 smarty快取的配置 smarty cache dir caches 快取目錄 smarty caching true 開啟快取,為flase的時侯快取無效 smarty cache lifetime 60 快取時間 2 smarty快取的使用和清除 sm...

php面試題和答案

1 用php列印出前一天的時間格式是2006 5 10 22 21 21 2分 a date y m d h i s strtotime 1 day print r a 2 echo print print r 的區別 3分 echo 和print不是乙個函式,是乙個語言結構 int print s...

PHP面試題 更新中

header content type text html charset utf 8 php基本面試題 定期更新 關於php排序演算法,在本人的 php排序演算法大全 經典 中可以找到,裡面列舉了氣泡排序,快速排序,插入排序,選擇排序,每種排序演算法都支援公升序 降序 class base c u...