PHP的背景恐怕就不用贅言了,我相信大家選擇一種語言,并不是看它的背景和悠久歷史,更重要的是看它的實用性,華而不實的語言哪怕是再輝煌的歷史,也畢將步向沒落,可喜的是PHP經(jīng)受住了考驗,也因此,它確實是一種值得學習的語言。
創(chuàng)新互聯(lián)公司網(wǎng)站建設由有經(jīng)驗的網(wǎng)站設計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負責網(wǎng)站視覺設計、用戶體驗優(yōu)化、交互設計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站建設、網(wǎng)站設計易于使用并且具有良好的響應性。
一直是聽從別人的經(jīng)驗長大的,也因此在前輩們的經(jīng)驗里讓少走了許多的彎路,更快的步入了正規(guī),在此向那些我至盡不知道其名字的前輩們道聲謝謝,在的眼里, 幫助不分大小,只要是幫助,總會讓的心里暖融融的,我想,前輩們幫助我,并不是為了得到我的一句謝謝,更多的是出于一種責任感和對的期望,所以我想,只有 學好PHP,才能對得起前輩們的汗水。
正如我所說的,也終于感覺到了一種責任感,不知道自己的經(jīng)驗到底能幫助新手多少,但是明白,現(xiàn)在到了履行責任的時候了,我有必要把自己的經(jīng)驗告訴給所有希望學好PHP的人,只有這樣才能讓中國的PHP不斷的進步,不斷的發(fā)展,在世界上占據(jù)一席之地。
學習PHP的這段期間,感覺國內(nèi)的PHP環(huán)境越來越成熟,規(guī)范也在逐漸的健全,PHPCHINA的成立,標志著與官方直接掛鉤的PHP機構(gòu)在中國正式落戶了,在此獻上遲到的掌聲!
好的,切入正題:
我想在講述自己的學習方式前,對那些期望能從我的文章中獲得有用信息的人說一句心里話:
的文章不會對您的學習起到實質(zhì)性的作用,您能否成功,還得靠自己的,堅持,堅持,再堅持,就是步入成功的不二法門。
我先把我自己學習PHP的過程做一下概括:
(1)熟悉HTML/CSS/JS等網(wǎng)頁基本元素,完成階段可自行制作完整的網(wǎng)頁,對元素屬性達到熟悉程度
(2)理解動態(tài)語言的概念,運做機制,熟悉PHP語法
(3)學習如何將PHP與HTML結(jié)合起來完成簡單動態(tài)頁面
(4)接觸MYSQL,開始設計數(shù)據(jù)庫程序
(5)不斷鞏固,摸透大部分PHP常用函數(shù),并可理解OOP,MYSQL優(yōu)化,以及模板
(6)完成一個功能齊全的動態(tài)站點
我的這套線路可能跟許多學習PHP的愛好者不謀而合,這也算是一個循序漸進的學習過程,不過新手不要看到上面的概括就以為學習蠻簡單的,在此不得不對您稍微潑一下冷水,任何東西其實都不簡單,即使是小吃部的燒餅也不是一下子就會做成的。
我先解釋一下我的學習思路。
首先,理解網(wǎng)站這一概念之后不難看出,任何網(wǎng)站都是由網(wǎng)頁組成的,也就是說想完成網(wǎng)站,必須先學會做網(wǎng)頁,因此必須要掌握了HTML,才能為今后制作網(wǎng)站打下基礎。
在學習HTML中我想邊學邊做是最有效的方式,當然這一方式對于學習PHP同樣是最有效的。
HTML中的任何元素都要親自實踐,只有明白了什么元素會起到什么效果之后,你才會記憶深刻,而一味的啃書,絕對是不行的,我想大部分新手之所以覺得概念難學,大部分是一個字“懶”,懶是阻止進步的最大敵人,所以克服掉懶的習慣,才能更快的學好一樣東西。
也許您在學習PHP的時候只想盡快的開發(fā)一個網(wǎng)站,也就會想我做網(wǎng)站,干嘛要學什么網(wǎng)頁這些小兒科?不難看出,眼高手低的新手不在少數(shù),這種思想無疑于建造空中樓閣,你不建地基,何來的房頂呢?
OK,掌握靜態(tài)網(wǎng)頁的制作技術(shù)是學習開發(fā)網(wǎng)站的先決條件,這一點就講到這里,因為這篇文章不是教程文章,也就不對技術(shù)進行深入的刨析了。
我假設你目前已經(jīng)可以完成一個靜態(tài)頁面了,當然,做的好看難看是另外一說,的第一個網(wǎng)頁也沒好看到哪去,但是“孩子”再丑,咱們做“爹媽”的也不能嫌棄不是?這畢竟是咱的成果。
那么咱們就開始學習動態(tài)語言的概念吧,剛一接觸動態(tài)語言,可能很多人都會蒙了,怎么這亂七八糟的東西,在網(wǎng)頁里顯示的時候卻是另外一碼事?其實這并不算亂 七八糟,你寫的HTML代碼不也一樣是一堆堆的字符嗎?畢竟,代碼并不是作為直接輸出的,而是經(jīng)過處理的,說白了,HTML是經(jīng)過HTML解析器,而 PHP當然也就通過PHP解析器了,跟學習HTML一樣的道理,想讓任何的解析器完成操作,就必須使用它們專用的語法結(jié)構(gòu),所以PHP長相奇怪也就不足為 奇了。
對于PHP的理解是新手最難邁過的一道門檻,不過你應該感到幸運的是PHP已經(jīng)最大極限的為了新手而努力了,如果你學過其他的語言,也許會覺得PHP的確相當?shù)暮唵?,但是如果你之前什么都沒學過,那么阿彌陀佛,硬著頭皮琢磨吧。
書過三遍自然熟,這個簡單的道理告訴我們,即使你理解不了PHP,但是也必須先跟它混個臉熟,看,一遍遍的看,看的同時一邊琢磨,一邊按照它所教的打代碼,即使你搞不清楚那些代碼到底是干嘛的,但是起碼你應該找找感覺。
在一段掙扎之后,聰明的你,顯然已經(jīng)逐漸的開悟了,慢慢的理解了編程的概念,那么祝賀你,你已經(jīng)邁出了成功的第一步。
搞清楚HTML和PHP的概念,那么PHP和HTML混合編程應該不成問題,在這期間,你完全可以讓PHP給你算算一加一等于幾,然后在瀏覽器輸出,不要 覺得幼稚,這的確是跟阿波羅登月一樣,你打的是一小段代碼,但是對于你的編程之路,可是邁出了一大步?。∨d奮吧?但是不得不再給你潑點冷水,您還是菜鳥一 個。
高興一段時間就必須繼續(xù)努力了,接下來就是學習數(shù)據(jù)庫了,MYSQL可算是PHP的黃金搭檔了,不過,雖然話是這么說,你也可能恨不得把MYSQL給生吞活剝了,因為這一行一列的東東簡直讓自己頭暈目眩。
頭暈歸頭暈,目眩歸目眩,你不可能吃飯的時候咬了自己一下舌頭就從此不吃飯了不是?放下畏懼,繼續(xù)努力,咱們是來征服它的,而不是被它征服的,振奮起來吧同志。
在一番搏斗之后,你終于理解了數(shù)據(jù)庫的概念,而且讓你興奮不已的是你終于可以通過PHP來連接數(shù)據(jù)庫了,這期間你是怎么學會的,我們不去考證了,但是事實證明,你已經(jīng)可以了。
學會了PHP和數(shù)據(jù)庫的你,無疑是左手拿著MOTOLOLA右手拿著NOKIA,要多瀟灑,有多瀟灑,哈哈,終于學會了,但是可能這個時候,又會有人不經(jīng)意的拍拍肩膀?qū)δ阏f:哥們,別高興的太早,你還是菜鳥,離學會還差著一大截呢!
等到你發(fā)奮努力的學會了用PHP成功的插入,刪除,更新數(shù)據(jù)的時候,顯然,你已經(jīng)距離成功指日可待了。
這個時候的你也許是這種狀態(tài):
你會HTML嗎?會,我能編好幾個大表格排板的網(wǎng)頁啦!
你會PHP嗎?會,我會把一加一的運算寫在函數(shù)里,然后調(diào)用啦!
你會MYSQL嗎?會,我會把我的信息在數(shù)據(jù)庫里插入刪除啦
那,接下來你該怎么做呢?我覺得,小試一下身手,大概是沒問題了,那么交給你個任務,做個留言本吧,這和HELLO WORLD有一比??!^_^,同是新手面臨的第一道關(guān)。
花了一段時間,你終于學會把表單的數(shù)據(jù)插入數(shù)據(jù)庫,然后顯示出來了,應該說一個程序的雛形已經(jīng)誕生了。
但是,你可能瞅瞅東,看看西,人家這個編論壇,那個CMS,還有那啥CRM,我啥時候?qū)懸粋€呢?
不要急,可以說你的馬步已經(jīng)扎的差不多了,接下來就要開始練把勢的時候了,如果有條件的話,用筆或者打印一個簡易的PHP手冊在身上,時不時的摸出來看看,記得,去WC也不能放過(^2^)。
再有條件的話,買本書看看吧,《PHP+MYSQL WEB開發(fā)(第三版)》號稱圣經(jīng)級,(也許是個不錯的選擇(聲明:作者沒給我啥好處費,我也不是書托,隔著大老遠,我連他老兄的面都沒見過的說-_-)
鞏固了自己的知識,熟悉了PHP和MYSQL開發(fā)的要領(lǐng)之后,再回頭看你寫的那個留言本,你也許會懷疑那真的是你寫的嗎?當然,如果屋里還有鬼的話,也許是它寫的-_-
這個時候,你的留言本應該加入注冊以及分頁功能了,而如果你更強的話,UI(用戶界面)也可以加強,完成之后,感覺是不是特有成就感?不管怎么樣,咱好歹 是寫了一個動態(tài)網(wǎng)站程序了,放在自己的網(wǎng)站上耍耍吧,讓好朋友來看看,嘿,看咱寫的多棒,然后再在網(wǎng)上宣傳一下。
幾天之后你再打開留言本,哎?哇,一下彈出N多頁面!很明顯,你的留言本并沒有做好安全防范,被人用JS代碼小小的耍了一下,我很同情你這個時候的感受,但是沒有別的辦法了,繼續(xù)努力吧!
你發(fā)奮努力,熟悉了安全方面的問題,然后又設計了一些程序,感覺還不錯。
那么接下來,這就算學會啦?NO,NO,NO,還早呢,你至盡還沒碰過OOP之類的吧?模板呢?
恩,學!加緊學呀學,學會了這些之后,你又學會了生成靜態(tài)網(wǎng)頁,現(xiàn)在你應該接觸一下XML了,恩,XML也了解了,那么AJAX你也得接觸接觸吧?AJAX完了….然后…
總而言之,你絕對不會發(fā)現(xiàn)你全部都學會了,一些真正的強人總會搞出新玩意來丟給你,你不學就落后了,也印證了前人的經(jīng)驗,果然是學無止境??!
我想通過我的一番YY,你也應該大致熟悉了一些學習過程,也許我的過程和你的有些出路,但是不管怎么樣是殊途同歸,我寫這么多,也只是給大家一個借鑒的機會,至于好與不好,不敢打包票^0^
看完之后你發(fā)現(xiàn),羅嗦這么多,對我一點用處沒有啊,我知道該怎么學,但是我想如何才能更快的學,一周速成,啊不,24小時速成那種,你有沒?
我…….我沒有,但是2分鐘之內(nèi)把你扁進醫(yī)院里,我倒是有把握-_-
學東西,永遠不要妄想有速成這一說,告訴你了一個方式,但是缺少努力這一環(huán)節(jié),那也是白搭。
但是有一點我可以給你保證的就是,你學會了PHP,那么學其他的語言,肯定速成,反過來也一樣,如果你之前學過其他的語言,那么學PHP肯定快。
不過語法好學,但是怎么用語法來實現(xiàn)每個人都有每個人的方式,幾乎是各有千秋。然而借鑒別人成功的代碼,絕對是有益無害,因此,多看那些經(jīng)過千錘百煉凝出來的經(jīng)典代碼,是進階的最好方法。
講了這么多,無非是想說:學習PHP不僅要掌握方法,更多的是付出汗水,我不希望看到中途放棄的人,相信自己,相信自己的選擇,更要相信自己的能力,如果 自己想放棄,暴力一點的話,就自己抽自己一個嘴巴,然后大吼:別人可以,我為什么就不可以?(是不是有點閻羅教練的味道,的確是電影看多了,抽嘴巴是會痛 的,各位其實明白這個道理了就行了)
另外要叮囑各位的是,抵御誘惑,ASP/PHP/JSP/.NET的對比也許會讓你無所適從,你也許學了一半PHP,又開始打C#的主意,或者有人說 JAVA很強,這個時候的你絕對不能動搖,哪怕你真想學,也得學會了PHP。然后再學,見異思遷是最不可取的,狗熊掰玉米就是這個道理,如果經(jīng)常中途放 棄,只能是一無所獲,還浪費了N多的時間和經(jīng)歷,得不償失,最重要的是,你會被別人瞧不起,沒有人會喜歡和見異思遷的人交朋友,因為這種人太不安分,太不 可靠,因此,你必須要強迫自己完成自己的目標,哪怕可能會很難受,也得堅持,毅力就是這么鍛煉出來的。
PHP的數(shù)據(jù)類型主要涵蓋如下:
一、四種標量類型(只能存儲一個數(shù)據(jù)):
string (字符串)、boolean (布爾型)、integer (整型)、float (浮點型, 也稱 double)
二、兩種復合類型:
array (數(shù)組)、object (對象)
三、兩種特殊類型:
resource(資源)、null (null)
對于新手,最簡單的辦法,在qq好嗎那一欄采用高級篩選,即單擊高級篩選/排序,然后出現(xiàn)篩選條件界面,在條件欄里輸入1-9的字符類型的數(shù)據(jù)(1*、2*直到9*)然后在高級篩選下拉列表下點擊應用篩選即可找到要的號碼,然后將選出來的一組號碼拷貝到文本文檔。
我也剛剛學PHP,正在研究中,雖然你只給10分........
首先,將代碼保存到一個文件,如:mysql.class.php
其次,在一個常用的文件里調(diào)用:比如頭部文件header.php,因為我放在根目錄所以用下面方式導入其他文件:
require dirname(__FILE__) . 'include/config.php';
//導入類文件
require dirname(__FILE__) . 'include/mysql.class.php';
//定義一個類及初始化數(shù)據(jù)庫類
$db = new mysql($db_host, $db_user, $db_pass, $db_name);
$db_host = $db_user = $db_pass = $db_name = NULL;
然后,在test.php文件調(diào)用:
require_once dirname(__FILE__) . '/header.php';
使用方法:
$sql = "讀取表";
$res = $db-query($sql);
$info = array();//定義數(shù)組
while($row=$db-fetchRow($res))
{
$arr['id'] = $row['id'];
$arr['title'] = $row['title'];
$info[] = $arr;
}
可以在顯示的地方用:
foreach($info as $i)
{
echo $i['title']."br /";
}
或是直接使用while
還用另一種調(diào)用方式:
$here_area = $db-getRow("select areaid,areaname from {$table}area where areaid='$areaid'");
$here[] = array('name'=$here_area['areaname'],'id'=$here_area['areaid']);
測試通過,因為我正在使用.....................................
config.php代碼:
?php
$db_host = "localhost";
$db_name = "test";
$db_user = "root";
$db_pass = "";
$table = "mini_";
$charset = "gb2312";
$dbcharset = "gbk";
?
mysql.class.php代碼:
?php
class mysql
{
var $link = NULL;
//自動執(zhí)行__construct php5類構(gòu)建方法,如果PHP4和PHP5同時使用會自動使用PHP5的方法
function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
//自動執(zhí)行時調(diào)用mysql函數(shù)
$this-mysql($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
//php4類構(gòu)建方法,如果沒有 __construct 就自動執(zhí)行此功能
function mysql($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
if ($quiet)
{
$this-connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
else
{
$this-settings = array(
'dbhost' = $dbhost,
'dbuser' = $dbuser,
'dbpw' = $dbpw,
'dbname' = $dbname,
'charset' = $charset,
'pconnect' = $pconnect
);
}
}
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
global $dbcharset;
if ($pconnect)
{
if (!($this-link = @mysql_pconnect($dbhost, $dbuser, $dbpw)))
{
if (!$quiet)
{
$this-ErrorMsg("Can't pConnect MySQL Server($dbhost)!");
}
return false;
}
}
else
{
if (PHP_VERSION = '4.2')
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw, true);
}
else
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw);
mt_srand((double)microtime() * 1000000);
}
if (!$this-link)
{
if (!$quiet)
{
$this-ErrorMsg("Can't Connect MySQL Server($dbhost)!");
}
return false;
}
}
$this-dbhash = md5($this-root_path . $dbhost . $dbuser . $dbpw . $dbname);
$this-version = mysql_get_server_info($this-link);
if ($this-version '4.1')
{
if ($dbcharset != 'latin1')
{
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this-link);
}
if ($this-version '5.0.1')
{
mysql_query("SET sql_mode=''", $this-link);
}
}
if ($dbname)
{
if (mysql_select_db($dbname, $this-link) === false )
{
if (!$quiet)
{
$this-ErrorMsg("Can't select MySQL database($dbname)!");
}
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
function query($sql, $type = '')
{
if ($this-link === NULL)
{
$this-connect($this-settings['dbhost'], $this-settings['dbuser'], $this-settings['dbpw'], $this-settings['dbname'], $this-settings['charset'], $this-settings['pconnect']);
$this-settings = array();
}
if ($this-queryCount++ = 99)
{
$this-queryLog[] = $sql;
}
if ($this-queryTime == '')
{
if (PHP_VERSION = '5.0.0')
{
$this-queryTime = microtime(true);
}
else
{
$this-queryTime = microtime();
}
}
if (!($query = mysql_query($sql, $this-link)) $type != 'SILENT')
{
$this-error_message[]['message'] = 'MySQL Query Error';
$this-error_message[]['sql'] = $sql;
$this-error_message[]['error'] = mysql_error($this-link);
$this-error_message[]['errno'] = mysql_errno($this-link);
$this-ErrorMsg();
return false;
}
return $query;
}
function affected_rows()
{
return mysql_affected_rows($this-link);
}
function num_fields($query)
{
return mysql_num_fields($query);
}
function error()
{
return mysql_error($this-link);
}
function errno()
{
return mysql_errno($this-link);
}
function num_rows($query)
{
return mysql_num_rows($query);
}
function insert_id()
{
return mysql_insert_id($this-link);
}
function fetchRow($query)
{
return mysql_fetch_assoc($query);
}
function fetcharray($query)
{
return mysql_fetch_array($query);
}
function version()
{
return $this-version;
}
function close()
{
return mysql_close($this-link);
}
function ErrorMsg($message = '', $sql = '')
{
if ($message)
{
echo "$message\n\n";
}
else
{
echo "bMySQL server error report:";
print_r($this-error_message);
}
exit;
}
function getCol($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_row($res))
{
$arr[] = $row[0];
}
return $arr;
}
else
{
return false;
}
}
function getOne($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
$row = mysql_fetch_row($res);
if ($row !== false)
{
return $row[0];
}
else
{
return '';
}
}
else
{
return false;
}
}
function getAll($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_assoc($res))
{
$arr[] = $row;
}
return $arr;
}
else
{
return false;
}
}
//使用: getRow($sql,true) 如果有true那值是 limit 1,讀取一條信息
function getRow($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
return mysql_fetch_assoc($res);
}
else
{
return false;
}
}
}
?
網(wǎng)頁標題:php數(shù)據(jù)類教程 php實用教程
網(wǎng)站路徑:http://m.rwnh.cn/article22/doohocc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、手機網(wǎng)站建設、網(wǎng)頁設計公司、面包屑導航、網(wǎng)站收錄、網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)