php通常指超文本預處理器,用于面向對象、命令式編程,是一種通用開源腳本語言。
專業成都網站建設公司,做排名好的好網站,排在同行前面,為您帶來客戶和效益!創新互聯為您提供成都網站建設,五站合一網站設計制作,服務好的網站設計公司,做網站、成都網站設計負責任的成都網站制作公司!
主要特點:
為開源性和免費性、快捷性、數據庫連接的廣泛性、面向過程和面向對象并用。優點是利于學習,使用廣泛。此外,php還可以指菲律賓比索的標準貨幣代碼符號,MPLS網絡中的倒數第二跳彈出功能。是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種HTML 內嵌式的語言,是一種在服務器端執行嵌入HTML文檔的腳本語言,語言風格有些類似于C語言,被廣泛的運用。
簡介:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,主要適用于Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯后代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
特性包括:
1、PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法
2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現
3、 PHP支持幾乎所有流行的數據庫以及操作系統。
4、最重要的是PHP可以用C、C++進行程序的擴展!
語言特點:
開源免費
PHP是一個受眾大并且擁有眾多開發者的開源軟件項目,Linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟件全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。不過PHP作為一個開源軟件,它缺乏大型科技公司的支持背景,網絡上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
快捷高效
PHP的內核是C語言編寫的基礎好效率高,可以用C語言開發高性能的擴展組件;PHP的核心包含了數量超過1000的內置函數,功能應有盡有很全面,開箱即用程序代碼簡潔; PHP數組支持動態擴容,支持以數字、字符串或者混合鍵名的關聯數組,能大幅提高開發效率; PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發效率快;PHP天然熱部署,在php-fpm運行模式下代碼文件覆蓋即完成熱部署;PHP經過20多年的發展,在互聯網上可以搜到海量的參考資料供參考學習。
性能提升
PHP版本越高它的整體性能越高,根據官方介紹,PHP7.0.0 對比PHP5.6性能就提升了2倍,PHP7.4已經比PHP7.0快了約30%,PHP8.0在性能上又相對PHP7.4大約改進了10%。PHP 8.0 引入了 JIT編譯器特性,同時加入多種新的語言功能,例如命名參數、聯合類型、注解、Constructor Property Promotion、match 表達式、nullsafe 運算符以及對類型系統、錯誤處理和一致性的改進。PHP擁有自己的核心開發團隊,保持5年發布一個大版本、1個月發布2個小版本的頻率,最新的版本是PHP8.08 。
跨平臺
每個平臺都有對應的php解釋器版本,指針對不同平臺均編譯出目標平臺的二進制碼(PHP解釋器),php開發的程序可以不經修改運行在windows、linux、unix等多個操作系統上。
常駐內存
php-cli模式下可以實現程序常駐內存,各種變量和數據庫連接都能長久保存在內存實現資源復用,比較常用的做法是結合swoole? ?組件編寫cli框架。
頁面生命周期
在php-fpm模式下,所有的變量都是頁面級的,無論是全局變量還是類的靜態成員,都會在頁面執行完畢后被清空,對程序員水平要求低,占用內存非常少,特別適合中小型系統的開發。
運行機制:
PHP常見的運行模式有2種,分別是php-fpm 和php-cli 。當PHP 選擇運行在php-fpm模式下,所有的變量都是頁面級的,無論是全局變量還是類的靜態成員,都會在頁面執行完畢后被清空。運行在php-cli模式下可以實現程序常駐內存,各種變量和數據庫連接都能長久保存在內存 實現資源復用,性能可以得到很大的提升,php-cli開發比較復雜能但是能夠獲取更高的性能,對開發者的要求比較高需要比較高的開發水平,比較常用的模式是結合swoole 組件編寫cli框架,各種變量能保存在跨進程的高性能共享內存 Table ,可以開發出支持熱啟動的php-cli可靠各類應用系統。
php-fpm在PHP 5.3.3 版本成為了官方正式組件(2010-07-22),它提供了穩定可靠的進程管理服務,進程不足時候可以智能擴充數量,閑置時候可以自動回收銷毀多余的進程,同時它對程序的容錯能力很強大運行非常穩定,可以應付企業級的開發需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯網協議下進行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內存泄漏的問題。php-fpm也提供有一些常駐內存的技術支持,例如PHP 7.4引入的opcache.preload也能實現局部的PHP類和函數的常駐內存,不過這個方法不夠靈活,和服務器配置捆綁的太死了。
php-cli因為能實現各類資源的常駐內存,所以可以資源復用,更高效完成多進程編程和異步編程,可以開發出負載能力更高的應用系統。但是相對php-fpm的簡單編程開發,開發者要注意很多的事項和需要做很多附加的控制器開發,否則就無法實現期待中的高性能。
首先開發者需要去實現可靠的進程管理服務,保證系統進程遇到各類錯誤退出運行后能夠自動創建新的進程,只有這樣才能保證后續的服務請求有足夠空閑進程可分配。每個業務代碼段都要做異常處理,讓進程遇到非致命錯誤時候不會退出,因為進程重啟意味程序和各類資源需要再次加載,這個過程性能消耗不小,所以只有進程穩定運行了常駐內存才有意義。
其次因為常駐內存,編寫的新的程序必須重啟服務才能生效,這一點習慣了fpm模式的開發者會感到比較陌生。另外開發者需要手工釋放內存,否則系統長時間運行后會出現內存泄露。同時在cli模式下,我們不能像fpm里直接用 $_SERVER、$_POST、$_GET、$_COOKI和$_FILES 進行編程工作,需要自己去解析各種互聯網通訊協議完成用戶的輸入輸出。要實現多進程編程利用多核CPU計算,還有學習使用pcntl和posix編程,這里涉及到了異步編程邏輯,這塊難度還是比較大的。比較常用的模式是結合swoole 組件編寫cli框架。
PHP是一個活躍的社區開發語言,有專業的核心開發團隊在持續不斷的迭代,最近一個版本就是PHP 8.0.8 引入了很多的新特性。
語言參考:
內置函數
PHP 有很多標準的函數和結構。還有一些函數需要和特定的擴展模塊一起編譯,否則在使用它們的時候就會得到一個致命的“未定義函數”錯誤。例如,要使用 image 函數中的 imagecreatetrue,需要在編譯 PHP 的時候加上 GD 的支持。或者要使用 mysqli_connect函數,就需要在編譯 PHP 的時候加上 MySQLi 支持。有很多核心函數已包含在每個版本的 PHP 中如字符串和變量函數。調用 phpinfo或者 get_loaded_extensions可以得知 PHP 加載了那些擴展庫。同時還應該注意,很多擴展庫默認就是有效的。
靜態網站與動態網站的區別
靜態網站:web1.0 時代
動態網站:web2.0 時代
靜態網站特點:
1、網頁內容一經發布到網站服務器,無論是否有用戶訪問,每個靜態頁面的內容都是保存在網站服務器上的。也就是說,靜態網頁是實實在在保存在服務器上的文件,每個網頁都是一個獨立的文件。
2、靜態網頁的內容相對穩定,因此容易被搜索引擎檢索。
3、 靜態網頁沒有數據庫的支持,在網站制作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁制作方式比較困難。
4、靜態網頁的交互性較差,在功能方面有較大的限制。
動態網站特點:
1、交互性:網頁會根據用戶的要求和選擇而動態地改變和響應,瀏覽器作為客戶端,成為一個動態交流的橋梁,動態網頁的交互性也是今后web發展的潮流。
2、自動更新:即無須手動更新HTML文檔,便會自動生成新頁面,可以大大節省工作量
3、因時因人而異:即當不同時間、不同用戶訪問同一網址時會出現不同頁面。
動態網頁是與靜態網頁相對應的,靜態網頁的后綴是以 .htm , .html , .shtml , .xml ,動態網頁的后綴是以 .asp , .jsp , .php , .perl , cgi 等形式。在動態網頁網址中有一個標志性的符號"?"
第一部分。安裝Apache2.4.9 服務器
1
下載回來的是解壓文件,解壓獲得程序文件夾Apache24和說明文件readme_first.html。
2
配置apache服務器。
3
啟動Apache服務器。
4
測試。你可以把Apache24\htdocs目錄下的index.html放到\www目錄下,用瀏覽器127.0.0.1訪問會出現“It
works”那么就說明apache已經正確安裝了。如果在命令行出現問題提示,可能是80端口被其他程序占用。如果是訪問403,請參考上面第2步“配置apache服務器”逐個核對。
5
加入為windows的系統服務,讓Apache自啟動。
(1) 關閉3的那個httpd命令窗口,不然會報錯的。
(2) 開始菜單→運行輸入cmd打開命令提示符。輸入G:回車 cd myServer/Apache24/bin回車
END
第二部分 安裝php7.0.0
下面是php的安裝。
重啟 Apache 服務器!!!
END
第三部分。MySQL的安裝
1
下面是mysql的安裝。
!--表單文件,拷入index.php--
!DOCTYPE?html
html
head
style
label{display:inline-block;width:100px;margin-bottom:10px;}
/style
titleAdd?students/title
/head
body
!--?數據庫用mysqli?面向過程調用方法--
form?method="post"?action="write2db.php"
!--數據庫用mysqli?面向過程調用方法
form?method="post"?action="write2db_sqlio.php"
--
!--數據庫用PDO調用方法
form?method="post"?action="write2db_pdo.php"
--
labelFirst?Name/label
input?type="text"?name="first_name"?/
br?/
labelLast?Name/label
input?type="text"?name="last_name"?/
br?/
labeldepartment/label
input?type="text"?name="department"?/
br?/
labelEmail/label
input?type="text"?name="email"?/
br?/
input?type="submit"?value="Add?students"
/form
/body
/html
------------------------------
?php
//拷貝命名為write2db.php,數據庫用mysqli?面向過程調用方法
//print_r($_POST);
//?create?a?variable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];
//調試用
echo?"Your?input:?";
echo?$first_name;
echo?'br?/';
echo?$last_name;
echo?'br?/';
echo?$department;
echo?'br?/';
echo?$email;
echo?'br?/';
$servername?=?"localhost";
//Your?database?username?and?password
//$username?=?"username";
//$password?=?"password";
$username?=?"tester";
$password?=?"testerPassword";
//your?database?name
$dbname?=?"test";
$tablename?="student";
//?Create?connection
$connect?=?mysqli_connect($servername,?$username,?$password,?$dbname);
if?(!$connect)?{
die("Connection?failed:?"?.?mysqli_connect_error());
}
//Execute?the?query
$sql="INSERT?INTO?$tablename?(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";
if?(mysqli_query($connect,?$sql))?{
echo?"Hooray!?New?record?is?inserted?to?database?successfully.?Please?check?database.";
}?else?{
echo?"Error:?"?.?$sql?.?"br?/"?.?mysqli_error($connect);
}
mysqli_close($connect);
?
?php
//拷貝命名為write2db_sqlio.php,數據庫用mysqli?面向對象調用方法
//print_r($_POST);
//?create?a?variable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];
//調試用
echo?"Your?input:?";
echo?$first_name;
echo?'br?/';
echo?$last_name;
echo?'br?/';
echo?$department;
echo?'br?/';
echo?$email;
echo?'br?/';
$servername?=?"localhost";
//Your?database?username?and?password
//$username?=?"username";
//$password?=?"password";
$username?=?"tester";
$password?=?"testerPassword";
//database?name
$dbname?=?"test";
$tablename?="student";
//?Create?connection
$conn?=?new?mysqli($servername,?$username,?$password,?$dbname);
//?Check?connection
if?($conn-connect_error)?{
die("Connection?failed:?"?.?$conn-connect_error);
}?
$sql="INSERT?INTO?$tablename?(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";
if?($conn-query($sql)?===?TRUE)?{
echo?"New?record?created?successfully";
}?else?{
echo?"Error:?"?.?$sql?.?"br"?.?$conn-error;
}
$conn-close();
?
?php
//拷貝為文件write2db_pdo.php,數據庫用PDO調用方法
//print_r($_POST);
a?variable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];
//調試用
echo?"Your?input:?";
echo?$first_name;
echo?'br?/';
echo?$last_name;
echo?'br?/';
echo?$department;
echo?'br?/';
echo?$email;
echo?'br?/';
$servername?=?"localhost";
//Your?database?username?and?password
//$username?=?"username";
//$password?=?"password";
$username?=?"tester";
$password?=?"testerPassword";
//your?database?name
$dbname?=?"test";
$tablename?="student";
//?Create?connection
try?{
$conn?=?new?PDO("mysql:host=$servername;dbname=$dbname",?$username,?$password);
//?set?the?PDO?error?mode?to?exception
$conn-setAttribute(PDO::ATTR_ERRMODE,?PDO::ERRMODE_EXCEPTION);
$sql="INSERT?INTO?$tablename?(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";
//?use?exec()?
$conn-exec($sql);
echo?"New?record?created?successfully";
}
catch(PDOException?$e)
{
echo?$sql?.?"br"?.?$e-getMessage();
}
$conn?=?null;
?
--創建數據庫test,?將此文件存為test.sql?導入數據庫,或者手動創建表結構
--?phpMyAdmin?SQL?Dump
--?version?4.7.4
--?
--
--?Host:?127.0.0.1:3306
--?Generation?Time:?Mar?12,?2018?at?04:04?AM
--?Server?version:?5.7.19
--?PHP?Version:?7.1.9
SET?SQL_MODE?=?"NO_AUTO_VALUE_ON_ZERO";
SET?AUTOCOMMIT?=?0;
START?TRANSACTION;
SET?time_zone?=?"+00:00";
/*!40101?SET?@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT?*/;
/*!40101?SET?@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS?*/;
/*!40101?SET?@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION?*/;
/*!40101?SET?NAMES?utf8mb4?*/;
--
--?Database:?`test`
--
--?--------------------------------------------------------
--
--?Table?structure?for?table?`student`
--
DROP?TABLE?IF?EXISTS?`student`;
CREATE?TABLE?IF?NOT?EXISTS?`student`?(
`id`?tinyint(3)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,
`first_name`?varchar(20)?NOT?NULL,
`last_name`?varchar(20)?NOT?NULL,
`department`?varchar(50)?NOT?NULL,
`email`?varchar(50)?NOT?NULL,
PRIMARY?KEY?(`id`)
)?ENGINE=MyISAM?AUTO_INCREMENT=2?DEFAULT?CHARSET=utf8;
--
--?Dumping?data?for?table?`student`
--
INSERT?INTO?`student`?(`id`,?`first_name`,?`last_name`,?`department`,?`email`)?VALUES
(1,?'first1',?'last1',?'cs',?'1985@qq.com');
COMMIT;
/*!40101?SET?CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT?*/;
/*!40101?SET?CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS?*/;
/*!40101?SET?COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION?*/;
網頁標題:php7.0創建數據表 php怎么建立數據庫mysql
文章位置:http://m.kartarina.com/article6/dogijog.html
成都網站建設公司_創新互聯,為您提供網站營銷、外貿網站建設、品牌網站建設、網站設計公司、標簽優化、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯