A. php開發怎麼學習PHP學習有沒有什麼方法
一、學前准備
1、建議首先要對網站有個整體的認識,對做網站需要學習的知識要有個認識,從而確定自己的學習方向,不要學一半,又覺得自己似乎不適合學這個,而半途改道,這樣很浪費時間,也不是學技術的人該有的心態。
2、PHP是什麼網上有很多資料這里不多說了,自己一定要好好看看。由於它是開源的可以從一些網站上下載很多源碼,甚至整站源碼。但是如果你想要學的好的話,很多東西東西都是自己設計,而不是二次開發。
3、強調一下php並不是想網上一些人說的那樣簡單,它只是語法簡單,深入還是要努力。
二、學習順序
(1)熟悉HTML/CSS/JS等網頁基本元素
(2)理解動態語言的概念,運做機制,熟悉PHP語法
(3)學習如何將PHP與HTML結合起來完成簡單動態頁面
(4)接觸MYSQL,開始設計資料庫程序,學會基本對資料庫的操作
(5)學會一個模版(建議是smarty),會話控制session和cookie,ajax
(6)繼續深入學會怎麼設計一個優秀的資料庫
三、學習方法總結
1,學習資料:一本好的書籍+配套的視頻+幾個常用的網站
2,開發工具:記事本,eclipse,ZendStudio 。
學習階段可以使用記事本,但是它的開發效率低,開發的時候要用到其他開發工具,eclipse,Zend
Studio是兩款最常用的工具。Eclipse是完全免費的產品,Zend
Studio(是一款集成開發軟體)是收費,但是它的破解方法很簡單。當然還有其他的開發軟體,自己可以挑選一個適合自己的。
3, 剛開始學習的時候基本上都會要學習lamp或者是wamp的環境的搭建,搭建環境的過程不是很多,但是可能會遇到很多問題(也可能你運氣好一次搭建好),千萬不要灰心,一定會解決的。
4, 在學習php的前期雖然用不到那麼多資料庫的知識,但是懂得怎麼使用它是很有必要的。等你可以開發網站後,設計一個好的資料庫就會成為一個成功的網站關鍵。
5,在學習的過程中還要准備各種開發手冊,php手冊,mysql手冊,以及一些框架的手冊。
6,php是一種後台語言,但是在學習後台之前還需要學習前台語言,DIV+CSS,HTML,javaScript,以及實現非同步傳輸的ajax。
7,學習ajax基本上是必須,但是學習它之前最好學習了javascript和xml,這樣才能從本質上了解原理。
8,有很多軟體專門用來管理和設計資料庫,這個很方便但是你一定要懂得sql語言,才能更好的設計資料庫,以及在php中用對資料庫進行相關的操作。
9,eclipse默認是不能開發php的,需要你對它進行擴展。擴展後要安裝Xdebugger或者是Zend_Debugger,安裝以後才能進行調試,調試和java調試基本一樣。
10,在學習php的過程中一定會遇到很多問題,你一定會去查找各種資料或者是別人,但是很有可能你下次遇到還是不懂,所以這就需要你要把遇到過的問題和解決方法記錄下來。
學習IT類,不論是哪一類不能僅靠理論知識,實戰和項目(也就是多練習)是重點!
B. 想自學PHP哪裡有免費的PHP教程
php中文網,w3cschool,慕課網,騰訊課堂等等 淘寶上也有很多視頻教程,很便宜
C. windows下開發並編譯PHP擴展的方法
現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要准備的軟體有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變數,把已經安裝好的PHP路徑設置為環境變數。在這里,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變數後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這里假設為e:\c_source_code\php-5.2.5
1、修改文件
「PHP源文件目錄/ext/ext_skel_win32.php」,在這里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
'e:\app\cygwin\bin';
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
--extname=<EXT_NAME>,此時會在ext目錄下生成<EXT_NAME>目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
--extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
「ext/<EXT_NAME>」中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入<EXT_NAME>目錄,打開<EXT_NAME>.dsp。
設置VC6工程,
設置菜單「組建」->「移除工程配置」,選中「Win
32
Release_TS」,
設置菜單「工程」,選中「Win
32
Release_TS」
打開Tab「連接」,設置「輸出文件名」中的目錄,
[可選]打開Tab「C/C++」,增加「預處理器定義」「,COMPILE_DL_<EXT_NAME>」(注意全大寫,默認加入的),取消預定義「LIBZEND_EXPORTS」(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是<EXT_NAME>.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經載入進來,已經可以使用這個foo擴展了。
D. PHP安裝以及教程
tomcat ?
據說tomcat配PHP效果不是很好..還是換apache吧....
apache嗎..反正幾乎是一路next就可以裝好了..不過你如果裝了IIS..就要注意埠問題..可能會有沖突..mysql也是.一路next,php嗎..我是這么樣的..
1.下載下來的php包解壓..文件夾最好直接命名成php.
2.將php.ini-recommended改名為php.ini(這個是php的配置文件).放到c:\windows下(不放這里好像會有問題)
3.php.ini設置:extension_dir = "c:\php\ext"設置成你的ext文件夾的目錄,去掉extension=php_mysql.dll前面的分號(載入mysql擴展).需要什麼擴展可以根據需要修改.
4.apache的設置:apache安裝目錄下的conf文件夾下.找到httpd.conf,DocumentRoot "d:/wwwroot"
這里是你的網站的目錄,
在最後添加
LoadMole php5_mole "c:/php/php5apache2_2.dll"(載入php模塊)
AddType application/x-httpd-php .php (可解析的php擴展名)
AddType application/x-httpd-php-source .phps (這個不記得了.反正肯定要的)
如果發現許可權不夠.找到這里
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
options indexes
</Directory>
原來是deny from all改成allow from all.
最好打開apache的目錄顯示.
Options Indexes FollowSymLinks去掉前面的#,如果還不可以.就在上面的allow from all下面加上options indexes就OK了.
這是win下面的apache+php的配置..
mysql安裝比較簡單..我就不說了...
PHP的電子教程網上非常多..在這里也不可能給你貼出來吧..
還有關於框架..框架網上的教程也很多..網路一下吧..
著名的框架有zend Framework,cakephp,國產的fleaphp,thinkphp等等...
E. 如何用C語言編寫PHP擴展的詳解
1:預定義
在home目錄,也可以其他任意目錄,寫一個文件,例如caleng_mole.def
內容是你希望定義的函數名以及參數:
int a(int x,int y)
string b(string str,int n)
2:到php源碼目錄的ext目錄
#cd /usr/local/php-5.4.0/ext/
執行命令,生成對應擴展目錄
#./ext_skel --extname=caleng_mole --proto=/home/hm/caleng_mole.def
3:修改config.m4
去掉dnl的注釋
PHP_ARG_ENABLE(caleng_mole, whether to enable caleng_mole support,
Make sure that the comment is aligned:
[ --enable-caleng_mole Enable caleng_mole support])
4:修改caleng_mole.c
代碼如下:
/* {{{ proto int a(int x, int y)
*/
PHP_FUNCTION(a)
{
int argc = ZEND_NUM_ARGS();
int x;
int y;
int z;
if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)
return;
z=x+y;
RETURN_LONG(z);
}
/* }}} */
/* {{{ proto string b(string str, int n)
*/
PHP_FUNCTION(b)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result;
char *ptr;
int result_length;
if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)
return;
result_length = str_len * n;
result = (char *) emalloc(result_length + 1);
ptr = result;
while (n--) {
memcpy(ptr, str, str_len);
ptr += str_len;
}
*ptr = '