程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP面試題一[轉]

PHP面試題一[轉]

編輯:關於PHP編程

1.用PHP打印前一天的時間,格式如2012-4-12 10:11:22

echo date("",strtotime(""));

format字符[a:am,pm小寫,A:AM,PM大寫  g小時,12時制 n月份 前無0]
strtotime()用法如下

php
echo strtotime (""), "";
echo strtotime (""), "";
echo strtotime (""), "";
echo strtotime (""), "";
echo strtotime (""), "";
echo strtotime (""), "";
echo strtotime (""), "";
 

2.echo() print() print_f()區別

echo()是一個php語句,所以沒有返回值,能打印簡單的數據。
print()是一個函數,有返回值,能打印簡單的數據。
print_r()是一個函數,能打印復雜的(mix)數據。

3.常見的PHP模板引擎

Smarty EasyTemplatePHP

4.哪些工具可以進行版本控制

SVN CVS

5.實現字符翻轉的函數

strrev($str);

6.優化Mysql數據庫的常用方法

(1).數據庫設計方面,這是DBA和Architect的責任,設計結構良好的數據庫,必要的時候,去正規化(英文是這個:denormalize,中文翻譯成啥我不知道),允許部分數據冗余,避免JOIN操作,以提高查詢效率
(2).系統架構設計方面,表散列,把海量數據散列到幾個不同的表裡面.快慢表,快表只留最新數據,慢表是歷史存檔.集群,主服務器Read & write,從服務器read only,或者N台服務器,各機器互為Master
(3).(1)和(2)超越PHP Programmer的要求了,會更好,不會沒關系.檢查有沒有少加索引
(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如生成笛卡爾積的全連接啊,大量的Group By和order by,沒有limit等等.必要的時候,把數據庫邏輯封裝到DBMS端的存儲過程裡面.緩存查詢結果,explain每一個sql語句
(5).所得皆必須,只從數據庫取必需的數據,比如查詢某篇文章的評論數,select count(*) ... where article_id = ? 就可以了,不要先select * ... where article_id = ?然後msql_num_rows.
只傳送必須的SQL語句,比如修改文章的時候,如果用戶只修改了標題,那就update ... set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的時候用不同的存儲引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個數量級的查詢速度

7.用PHP獲取客戶端IP及服務器IP

客戶端:$_SERVER[‘REMOTE_ADDR’]或getenv(‘REMOTE_ADDR’);

服務器:gethostbyname(“baidu.com”);

8.修改session的生存時間

<?php
session_start(); 
// 保存一天 
$lifeTime = 24 * 3600; 
setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
?>
9.寫出發貼數最多的十個人名字的sql,利用下表:members(id,username,posts,pass,email)
SELECT username 
FROM members
GROUP BY id 
ORDER BY count(posts) DESC 
LIMIT 0 , 10
 
10.簡述如何得到當前執行腳本路徑,包括所得到參數。
echo $_SERVER['SCRIPT_FILENAME']."?".$_SERVER['QUERY_STRING'];
 
11.mysql_fetch_row() 和mysql_fetch_array之間有什麼區別?
mysql_fetch_row() 從和指定的結果標識關聯的結果集中取得一行數據並作為數組返回。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。
 
12.判斷以下輸出
 $str1 = null;
 $str2 = false;
 echo $str1==$str2 ? '' : '';  //相等
 $str3 = '';
 $str4 = 0;
 echo $str3==$str4 ? '' : '';  //相等
 $str5 = 0;
 $str6 = '';
 echo $str5===$str6 ? '' : '';  //不相等
 
13.寫出以下結果
php
 $test = '';
 $abc = & $test;
 unset($test);
 echo $abc;  
 
當你 unset 一個引用,只是斷開了變量名和變量內容之間的綁定。這並不意味著變量內容被銷毀了。

-----------未完待續-------------

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved