導航:首頁 > 編程語言 > c語言php開發

c語言php開發

發布時間:2022-08-11 01:47:37

『壹』 php是用什麼語言開發的,c語言嗎

php的解釋器是用c寫的,解釋器相當於弱編譯器,但是php本身並不基於某種底層語言。

PHP在伺服器端執行的腳本語言,與C語言類似,是常用的網站編程語言。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在伺服器端採用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。

(1)c語言php開發擴展閱讀

主要特點

(一)開源性和免費性

由於PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP 運行環境的使用也是免費的。

(二)快捷性

PHP是一種非常容易學習和使用的一門語言,它的語法特點類似於C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。

(三)資料庫連接的廣泛性

PHP可以與很多主流的資料庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些資料庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。

參考資料來源:網路-PHP

『貳』 php程序員想提高 有必要學習c語言嗎

無論從事任何語言學習c語言都是很有必要的。

  1. c語言是最早的,並且使用最多的語言,長盛不衰。

  2. 在各種語言的發展過程中,或多或少都借鑒了c語言的內容,php尤其突出。

  3. php本身就是c語言進行開發完成的web開發語言,學習c語言,有利於了解php的內核。

  4. c語言接近操作系統底層,有利於從內存的角度理解php語言的運行機制。

『叄』 如何用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 = '';
RETURN_STRINGL(result, result_length, 0);
}
/* }}} */


5:生成擴展庫
#cd ./caleng_mole
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
#make
#make install



6:到php的對應extensions目錄
如上圖所示
#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
改目錄下有生成的caleng_mole.so文件

7:修改php.ini
php.ini如果找不到可以從phpinfo()打出的信息看到
#cd /usr/local/php/lib/
php.ini增加擴展信息
extension=caleng_mole.so

8:重啟Apache
# /usr/local/apache2/bin/apachectl restart

9:檢查載入
/usr/local/php/bin/php -m

10:PHP調用

代碼如下:


echo a(1,2);


輸出 3 就說明成功了!

下面是原文
Linux下用C開發PHP擴展
一、首先下載PHP源碼包,假設源碼包目錄為:/software/php-5.2.13
一、首先下載PHP源碼包,假設源碼包目錄為:/software/php-5.2.13
#> cd /software/php-5.2.13/ext
二、假設我們要開發一個名為caleng_mole的擴展,該擴展包含兩個函數:a--處理兩個整型相加和b-處理字元串重復輸出;
1、首先編寫一個函數定義文件,該文件編寫函數原型後綴為def,假設為:caleng_mole.def
int a(int x, int y)
string b(string str, int n)
2、通過擴展骨架生成器,將在ext目錄下自動建立擴展目錄caleng_mole
#> ./ext_skel --extname=caleng_mole --proto=caleng_mole.def
3、修改配置文件: #> vim /software/php-5.2.13/ext/caleng_mole/config.m4,將如下行的注釋標簽"dnl"去掉,修改後如下所示:
PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,
Make sure that the comment is aligned:
[ --enable-myfunctions Enable myfunctions support])
4、完善函數a和b的功能: #> vim /software/php-5.2.13/ext/caleng_mole/caleng_mole.c
PHP_FUNCTION(a)
{
int x, y, z;

int argc = ZEND_NUM_ARGS();

if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)
return;
z = x + y;
RETURN_LONG(z);
}
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 = '';
RETURN_STRINGL(result, result_length, 0);
}
三、編譯安裝,假設php的安裝目錄為:/usr/localhost/webserver/php
#> cd /software/php-5.2.13/ext/caleng_mole
#> /usr/localhost/webserver/php/bin/phpize
#> ./configure --with-php-config=/usr/localhost/webserver/php/bin/php-config
#> make
#> make install
現在將在/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613目錄下生成caleng_mole.so文件
在php.ini配置文件中加入: extension=caleng_mole.so.

『肆』 C語言與PHP哪個發展更好

從發展前景、未來主導看,c語言更有前途一些。
因為c語言是繼機器碼、匯編之後第一個底層的與自然語言接近的語言,兼顧高效率與易理解,所以做底層的主流語言c的地位永遠不會改變。
java是面向對象的高級語言,主要目的是容易理解和編寫代碼,那麼將來肯定會出現更加人性化的高級語言來取代它。
這個結論從c語言出現的幾十年但一直居於編程語言排行榜的前三名就可以證明。
從優勢和就業來看,java目前好一點,java是面向對象的高級語言,所以應用軟體主要使用它,相比較c擅長的底層開發,應用軟體的市場更大一些,所以也更容易就業一些,但是如果c學的非常好的話,就業非常容易。

『伍』 如何看待C語言開發PHP框架

用C開發的框架目前還是比較少的,比較突出的就是由laurence開發的YAF,以及Phalcon,不少技術員會 CIT已經介紹了不少的開發框架,CodeIgniter、ZendFramework、CakePHP、FuelPHP、Phalcon,其中有的採用PHP語言開發,有的則是採用C語言編寫完成。 用C開發的框架目前還是比較少的,比較突出的就是由laurence開發的YAF,以及Phalcon,不少技術員會問,C語言開發的PHP框架會成為一種趨勢么,本篇就來簡單的分析介紹下。 為何使用框架 使用框架主要是在團隊協作開發過程中統一開發規范、程序設計模式,遵循開發框架的各種約定,無論在編碼還是以後的維護過程中都是易於管理的。另外就是框架會集成豐富的類庫、函數庫,也避免你的重復勞動,可以「隨地取材」,提升開發的效率。 作為新人,我們是不提倡學習框架的,盡量還是從PHP本身先學起,例如很多框架中都提供了ORM、CURD這類東西,但剛剛接觸PHP的同學連PHP+MySQL都沒有搞太清楚,直接選擇框架式不可取的。 另外一些簡單的應用也不必選擇框架,例如一些小的工具或者功能,本身編寫就不是很復雜,選擇一套框架反而讓你的程序變得臃腫。 個人開發的時候也是根據情況而定,如果一些程序員本身就有一套開發思路,也無需選擇框架,畢竟要熟悉框架也是需要時間成本的。 綜上所述,我們得知選擇框架是有范圍的,只有合適的時候才需要去選擇開發框架。 易配置、易部署; 庫、函數; 文檔; 豐富的應用; 成熟的社區; 性能; 不同層次的技術員選擇框架所看重的點也是不一樣的,如果是初學者,主要是看重1、3、5,中級的技術員則看重2、4,如果是高級別的技術員會更加看重6,所以不同階段會選擇不同的開發框架。當然,成熟的開發框架應該能夠包羅方方面面,但能夠做到這些是不可能的。 C語言框架是趨勢么? 我想隨著Ruby on Rails這些的發展,讓很多web工作者感受到了快樂,PHP中集成開發框架也不是不可能的事情,這不是YAF、Phalcon已經在做這些事情了么,但C語言的開發框架能做的事情是有限的,它可能會作為開發模式的一種規范,但絕不會是框架的全部,因為如果整個框架純採用C語言,那就不能很好的利用PHP社區。

『陸』 我有C語言程序的基礎,現在想學PHP,請問應該怎麼做

1.
准備資源,先裝一個環境,推薦初學者使用xampp,一個集成了幾乎所有PHP開發中能用到的擴展包以及一個Web伺服器Apache,一個資料庫MySQL。
2.
下載手冊,PHP的手冊是我見過寫得最好的手冊,通俗易懂。如果有C語言基礎,大概瀏覽一下手冊,基本就能寫一些簡單的PHP程序了。
3.
需要找一本書,大概所有的PHP書都會講一些基礎以及包含一個站點的開發。
4.
需要做一個小項目,大概類似留言板的項目得做做。
對於基礎的就這幾點了。

『柒』 如何用c語言在windows平台上開發php extension

如何使用C語言開發PHP擴展。

函數功能:php裡面的整數是有符號數,其內部實現其實就是long,不是unsigned long。對於32位機器來說,php最大能表示的整數就是2^31-1了,一般在應用中碰到大於2^31-1而小於2^32的數就只能用字元串來表示了。對於mixed int_ext(string in)來說,如果字元串in表示的整數小於2^31-1,那麼就返回整數,如果大於就返回字元串。

開發擴展步驟如下:(首先需要下載php的源碼,這里下載的是php-5.3.14)

1,建立擴展骨架

[plain] view plainprint?
01.cd php-5.3.14/ext
02../ext_skel --extname=int_ext
cd php-5.3.14/ext
./ext_skel --extname=int_ext
2,修改編譯參數

[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi config.m4
cd php-5.3.14/ext/int_ext
vi config.m4去掉 PHP_ARG_ENABLE(int_ext, whether to enable int_ext support 和
[ --enable-int_ext Enable int_ext support]) 兩行前面的dnl 修改後為:

[plain] view plainprint?
01.1. dnl Otherwise use enable:
02.2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
03.3. dnl Make sure that the comment is aligned:
04.4. [ --enable-int_ext Enable int_ext support])
1. dnl Otherwise use enable:
2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
3. dnl Make sure that the comment is aligned:
4. [ --enable-int_ext Enable int_ext support])
3,編寫C代碼

[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi php_int_ext.h
03.#在 PHP_FUNCTION(confirm_int_ext_compiled); 後面新增一行 PHP_FUNCTION(int_ext);
cd php-5.3.14/ext/int_ext
vi php_int_ext.h
#在 PHP_FUNCTION(confirm_int_ext_compiled); 後面新增一行 PHP_FUNCTION(int_ext);[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi int_ext.c
03.#在PHP_FE(confirm_int_ext_compiled, NULL) 後面添加 PHP_FE(int_ext, NULL)添加後為:
04.1. zend_function_entry int_ext_functions[] = {
05.2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
06.3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
07.4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
08.5. };
cd php-5.3.14/ext/int_ext
vi int_ext.c
#在PHP_FE(confirm_int_ext_compiled, NULL) 後面添加 PHP_FE(int_ext, NULL)添加後為:
1. zend_function_entry int_ext_functions[] = {
2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
5. };
核心代碼:

[plain] view plainprint?
01.PHP_FUNCTION(int_ext)
02.{
03. char * str = NULL;
04. int str_len;
05. int argc = ZEND_NUM_ARGS();
06. if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
07. return ;
08. char * result;
09. int result_length = str_len;
10. result = (char *) emalloc(result_length + 1);
11. memcpy(result,str,result_length);
12. unsigned long result_num = strtoul(result, NULL, 10);
13. int sizeoflong sizeof(long);
14. unsigned long max_long = 1 << (sizeoflong * 8 -1);
15. if(result_num < max_long)
16. {
17. RETURN_LONG(result_num);
18. }
19. else
20. {
21. RESULT_STRINGL(result, result_length, 0);
22. }
23.}
PHP_FUNCTION(int_ext)
{
char * str = NULL;
int str_len;
int argc = ZEND_NUM_ARGS();
if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
return ;
char * result;
int result_length = str_len;
result = (char *) emalloc(result_length + 1);
memcpy(result,str,result_length);
unsigned long result_num = strtoul(result, NULL, 10);
int sizeoflong sizeof(long);
unsigned long max_long = 1 << (sizeoflong * 8 -1);
if(result_num < max_long)
{
RETURN_LONG(result_num);
}
else
{
RESULT_STRINGL(result, result_length, 0);
}
}

4,編譯

[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02./usr/local/php/bin/pphpize
03../configure --with-php-config=/usr/local/php/bin/php-config
04.make
05.make install
cd php-5.3.14/ext/int_ext
/usr/local/php/bin/pphpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
此時會產生一個so文件: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/int_ext.so
修改php.ini 添加擴展extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

[int_ext]

extension = int_ext.so

5,測試

[plain] view plainprint?
01.$a = int_ext("12345678900");
02.var_mp($a);
03.$a = int_ext("123456789");
04.var_mp($a);
$a = int_ext("12345678900");
var_mp($a);
$a = int_ext("123456789");
var_mp($a);
結果輸出:

[plain] view plainprint?
01.string(11) "12345678900"
02.int(123456789)

『捌』 php和C語言哪個好學,學哪個用的時間更短些幾個問題

php和C語言哪個好學,學哪個用的時間更短些?
----php好學,不過C是基本。
如果能在短期內學會PHP,對學C語言有沒有一定的幫助?------幫助很大,只要學會編程的思想
學C語言和PHP最快分別能用多長時間學好?------學C至少要1個月,學PHP至少15天(不做別的)
我本身學的
是電子專業,如果學C語言做單片機硬體開發的話得用多少時間?(至少2個月吧)
如果學php達到中級水平的話又得用多少時間?(1個月左右)

『玖』 php怎樣和c語言混合編程

php是一個腳本語言,如果需要系統調用,需要用C語言編寫一個擴展來實現,另外C是靜態編譯的,執行效率比PHP代碼高很多。同樣的運算代碼,使用C來開發,性能會比PHP要提升數百倍。編寫好的php擴展要在編譯php源碼時加進去。

『拾』 php和C語言的區別

一、指代不同

1、php:即「超文本預處理器」,是一種通用開源腳本語言。

2、C語言:是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。

二、特點不同

1、php:是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。

2、C語言:能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。


三、優勢不同

1、php:具有較高的數據傳送處理水平和輸出水平,可以廣泛應用在Windows系統及各類Web伺服器中。如果數據量較大,PHP語言還可以拓寬鏈接面,與各種資料庫相連,緩解數據存儲、檢索及維護壓力。

2、C語言:提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。


閱讀全文

與c語言php開發相關的資料

熱點內容
integer類源碼 瀏覽:819
java排序的時間復雜度 瀏覽:859
伺服器陣列卡壞了怎麼維修 瀏覽:537
shm演算法 瀏覽:520
可愛的程序員陸漓離開 瀏覽:608
如何把掃描文件做成pdf格式 瀏覽:625
php個性qq源碼 瀏覽:821
初學c語言顯示源未編譯 瀏覽:247
資產概況源碼 瀏覽:472
dos命令建文件夾命令 瀏覽:379
解壓的密碼htm被屏蔽 瀏覽:502
冬天太冷冰箱壓縮機不啟動怎麼辦 瀏覽:83
手機打開vcf需要什麼編譯器 瀏覽:910
加密磁碟後開機很慢 瀏覽:271
長沙智能雲控系統源碼 瀏覽:258
阿里雲伺服器如何設置操作系統 瀏覽:1001
超級命令的英文 瀏覽:784
做賬為什麼要用加密狗 瀏覽:586
考研群體怎麼解壓 瀏覽:159
linux修改命令提示符 瀏覽:226