PHP簡介
PHP是英文超文本預處理語言Hypertext Preprocessor的遞歸縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用。可以生成Forms,ComboBoxes,Grid,Menus等的組件,並支持將數據轉為XML/JSON格式。
PHP 獨特的語法混合了C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。
PHP最初是由勒多夫在1995年開始開發的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放源代碼許可協議GPL不兼容。
PHP語言的八大優勢:
1、開放源代碼,所有的PHP源代碼事實上都可以得到。
2、免費性,php和其它技術相比,PHP本身免費且是開源代碼。
3、快捷性,程序開發快,運行快,技術本身學習快。嵌入於HTML:因為PHP可以被嵌入於HTML語言,它相對於其他語言。編輯簡單,實用性強,更適合初學者。
4、跨平臺性強,由於PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS、Mac OS下。
5、專業專注,PHP支持腳本語言為主,同為類C語言。
6、效率高PHP消耗相當少的系統資源。
7、面向對象,在php4,php5 中,面向對象方面都有了很大的改進,php完全可以用來開發大型商業程序。
8、圖像處理,用PHP動態創建圖像,PHP圖像處理默認使用GD2。且也可以配置為使用image magick進行圖像處理
PHP基礎面試技巧
一、核心技術
1.寫出一個能創建多級目錄的PHP函數
<code> /**
* 創建多級目錄
* @param $path string 要創建的目錄
* @param $mode int 創建目錄的模式,在windows下可忽略
*/
function create_dir($path,$mode = 0777)
{
if (is_dir($path)) {
# 如果目錄已經存在,則不創建
echo "該目錄已經存在";
} else {
# 不存在,創建
if (mkdir($path,$mode,true)) {
echo "創建目錄成功";
} else {
echo "創建目錄失敗";
}
}
}
?>/<code>
2.寫出smarty模板的特點
速度快,編譯型,緩存技術,插件機制,強大的表現邏輯
3.打開php.ini中的safe_mode,會影響哪些函數?
safe_mode,php安全模式,它提供一個基本安全的共享環境,在一個有多個用戶賬戶存在的php開發的web服務器上。當安全模式打開的時候,一些函數將被完全的禁止,而另一些函數的功能將會受到限制,如:chdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,require,mkdir,unlink等。注意,在php5.3以上版本,safe_mode被棄用,在php5.4以上版本,則將此特性完全去除了。
4.抓取遠程圖片到本地,你會用什麼函數?(51.com筆試題)
file_get_contents或者curl
5.PHP的垃圾收集機制是怎樣的
PHP可以自動進行內存管理,清除不再需要的對象。PHP使用了引用計數(reference counting)這種單純的垃圾回收(garbage collection)機制。每個對象都內含一個引用計數器,每個reference連接到對象,計數器加1。當reference離開生存空間或被設為NULL,計數器減1。當某個對象的引用計數器為零時,PHP知道你將不再需要使用這個對象,釋放其所佔的內存空間。
6.請寫一段PHP代碼,確保多個進程同時寫入同一個文件成功
核心思路:加鎖
<code> $fp = fopen("lock.txt","w+");
if (flock($fp,LOCK_EX)) {
//獲得寫鎖,寫數據
fwrite($fp, "write something");
// 解除鎖定
flock($fp, LOCK_UN);
} else {
echo "file is locking...";
}
fclose($fp);
?>/<code>
7.寫一個函數,儘可能高效的,從一個標準url裡取出文件的擴展名
<code> // 方案一
function getExt1($url){
$arr = parse_url($url);
//Array ( [scheme] => http [host] => www.sina.com.cn [path] => /abc/de/fg.php [query] => id=1 )
$file = basename($arr['path']);
$ext = explode('.', $file);
return $ext[count($ext)-1];
}
// 方案二
function getExt2($url){
$url = basename($url);
$pos1 = strpos($url,'.');
$pos2 = strpos($url,'?');
if (strstr($url,'?')) {
return substr($url,$pos1+1,$pos2-$pos1-1);
} else {
return substr($url,$pos1);
}
}
$path = "http://www.sina.com.cn/abc/de/fg.php?id=1";
echo getExt1($path);
echo "
";
echo getExt2($path);
?>/<code>
相關題目:使用五種以上方式獲取一個文件的擴展名,要求:dir/upload.image.jpg,找出.jpg,必須使用PHP自帶的處理函數進行處理,方法不能明顯重複,可以封裝成函數,比如get_ext1(filename),getext2(filename),getext2(file_name)
PHP面試題
1 . PHP 指的是?
A.Private Home Page
B.Personal Hypertext Processor
C.PHP: Hypertext Preprocessor
D.Personal Home Page
2 . PHP 服務器腳本由哪個分隔符包圍?
A....?>
B.
C.
D....&>
3 . 如何使用 PHP 輸出"hello world"?
A."Hello World";
B.echo "Hello World";
C.Document.Write("Hello World");
4 . 在 PHP 中,所有的變量以哪個符號開頭?
A.! B.& C.$
5 . 結束 PHP 語句的正確方法是?
A. B.New line C.; D..
6 . PHP 語法與下列哪種最相似?
A.VBScript B.JavaScript C.Perl和 C
7 . 如何從使用 "get"方法提交的表單中獲取數據?
A.$_GET[]; B.Request.QueryString; C.Request.Form;
8 . 請判斷以下說法是否正確:當使用 POST 方法時,變量顯示在 URL 中。錯誤
9 . 請判斷以下說法是否正確:在 PHP 中,既可以使用單引號 ( ' ' ) 也可以使用雙引號( " " ) 來包圍字符串。正確
10 . 請判斷以下說法是否正確:包含文件必須使用文件後綴 ".inc"。錯誤
11 . 引用文件 "time.inc"的正確方法是?
A.
B.
C.
D.
12 . 在 PHP 中創建函數的正確方法是?
A.function myFunction()
B.create myFunction()
C.new_function myFunction()
13 . 以只讀模式打開文件 "time.txt"的正確方法是?
A.fopen("time.txt","r+"); ----這是讀寫
B.open("time.txt");
C.open("time.txt","read");
D.fopen("time.txt","r");
14 . 請判斷以下說法是否正確:
PHP 允許我們直接通過腳本來發送電子郵件。正確
15 . 連接 MySQL 數據庫的正確方法是?
A.mysql_open("localhost");
B.mysql_connect("localhost");
C.connect_mysql("localhost");
D.dbopen("localhost");
PHP程序員就業前景
作為老牌的Web後端編程語言,PHP 在全球市場佔有率非常高,僅次於 Java ,從各個招聘網站的數據上來看PHP 開發的職位非常多,薪資水平也非常不錯。實際在中小企業、互聯網創業公司PHP的市場地位是高於 Java 的。Java 在超大型企業、傳統軟件行業、金融領域優勢更大。
PHP程序員就業前景也非常不錯,特別是一些大城市,對PHP程序員的需求非常大,PHP培訓也不少。
互聯網的企業生存和競爭的核心在於技術,技術/研發人才永遠才是這些企業不可或缺的網絡應用。PHP主要用來做網站開發,許多小型網站都用PHP開發,PHP是開源的,這是使得PHP經久不衰的原因。在電商、社區等方面,PHP具備非常成熟的開源代碼和模板,因此使得PHP應用極為廣泛。
PHP的優勢和不足
PHP主要用來做網站開發,許多小型網站都用PHP開發,PHP是開源的,這是使得PHP經久不衰的原因。在電商、社區等方面,PHP具備非常成熟的開源代碼和模板,因此使得PHP應用極為廣泛。劣勢是受眾較小,有可替代性。
PHP堅持腳本語言為主,所以PHP入門比較簡單,經過3-4個月培訓即可學成,找工作起薪比Java要低,平均工資比java也要低些,不過有經驗的php程序員待遇較高,4、5年開發經驗的php工程師,工資可達1萬5,不過再提升就比較難,php的提升空間不如java。相對於其他編程語言來說,發展前景比較樂觀,但不如Java穩定。
PHP發展前景
在IT業和互聯網的超速發展的時代,企業對PHP程序員的需求也大量增加,我們可以看到國內,包括Google、百度、網易、新浪、搜狐、阿里巴巴、奇虎、eBay、騰訊等各大網站都在尋求PHP高手。
近幾年各類企業發佈招聘人才信息,對人才的需求超過60000名,但是因為國內PHP人才貯備不足、培訓體系的不健全以及國內Web開發人員對PHP的價值認識不夠,我們看到個人的應聘累計只有6000名,人才缺口竟然是10:1,PHP人才非常稀缺。這個崗位是程序員中最火的,這種嚴重供不應求的局面在未來幾年中也將愈演愈烈。
據權威部門統計,我國PHP人才非常緊缺,大約是每年50萬人左右。因此未來的幾年內,隨著信息化,智能化,網絡化的發展,PHP系統技術也將獲得廣闊的發展空間。PHP開發者們、即將或者正在學習PHP開發技術的同學也應該可以清楚地看到,PHP的發展前景可以說是非常好。因此,現在要做的就是學好PHP開發語言和技術,夯實基礎,不斷在實踐中鍛鍊自己的開發能力,將來能體現自己的價值。
以上就是PHP的一些發展前景及就業情況,僅供參考。
(歡迎大家留言對此的看法!)
閱讀更多 Python大數據工程師 的文章