首页 > 后端开发 > 正文

c开发php框架 php是用什么语言开发的,c语言吗?

2023-08-26 17:26:52 | 我爱编程网

今天,我爱编程网小编为关注后端开发的同学们准备了c开发php框架 php是用什么语言开发的,c语言吗?,下面一起来看一下吧。

c开发php框架 php是用什么语言开发的,c语言吗?

php是用什么语言开发的,c语言吗?

php的解释器是用c写的,解释器相当于弱编译器,但是php本身并不基于某种底层语言。PHP在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。

c开发php框架 php是用什么语言开发的,c语言吗?

如何用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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
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 plaincopyprint?
01.$a = int_ext("12345678900");
02.var_dump($a);
03.$a = int_ext("123456789");
04.var_dump($a);
$a = int_ext("12345678900");
var_dump($a);
$a = int_ext("123456789");
var_dump($a);
结果输出:

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

c开发php框架 php是用什么语言开发的,c语言吗?我爱编程网

php什么框架写接口最快

Phalcon。截止到2023年6月7日,写接口最快的php框架是Phalcon,专为Web开发而设计,是一个C扩展,可以在PHP运行时中直接调用代码,而不需要使用PHP语言解析器。PHP即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。

以上就是我爱编程网小编为大家带来的c开发php框架 php是用什么语言开发的,c语言吗?,希望对大家有帮助,了解更多相关资讯请关注我爱编程网。
与“c开发php框架 php是用什么语言开发的,c语言吗?”相关推荐
c语言php框架 php是用什么语言开发的,c语言吗?
c语言php框架 php是用什么语言开发的,c语言吗?

php和c语言区别是什么php和c语言的区别:1、PHP是服务器脚本语言,必须要运行在能够解析PHP的服务器上;2、C语言是低级语言,而PHP是高级语言;3、C语言是强类型语言,而PHP是弱类型语言;4、PHP主要用来做web应用,C语言主要用来做计算机底层应用。推荐:《PHP视频教程》1、PHP是服务器脚本语言,必须要运行在能够解析PHP的服务器上2、C语言是低级语言,PHP

2023-08-26 17:46:36
c语言搭建成的php框架 php是用什么语言开发的,c语言吗?
c语言搭建成的php框架 php是用什么语言开发的,c语言吗?

急用!!!问下yaf是框架还是php的扩展呀怎么去下在yaf它的官网是多少呀手册在哪下呀谢谢yaf既是一个框架,也是一个扩张,它是一个PHP扩展形式的框架,yaf的官方文档中对yaf的定义:Yaf是一个C语言编写的PHP框架;yaf官网:yaf中文文档:做php开发都需要会什么做php开发都需要会什么,一起来了解一下吧。1、掌握HTML、CSS、JS和Jquery框架,

2023-10-04 10:22:27
php框架c底层 php是用什么语言开发的,c语言吗?
php框架c底层 php是用什么语言开发的,c语言吗?

PHP是什么-PHP的架构及原理概述记得我刚开始学习PHP的时候,许多面试官会经常问我PHP是什么,那时的标准回答是PHP是一种弱类型动态脚本编程语言,开源,免费,是超文本预处理器的缩写。这只是很浅的解释,PHP对我来说是一个工具,是我手里的一把锤子,虽然这把锤子时常被调侃为两边都是起钉器的锤子。多进程模型PHP是以多进程模型设计的,这样的好处是请求之间互不干涉,一个请求

2023-09-06 19:56:10
php是c语言的框架吗 PHP是什么语言?
php是c语言的框架吗 PHP是什么语言?

PHP是什么语言?PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:HypertextPreprocessor)的缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比C

2023-10-04 10:26:29
php框架C语言 php是什么语言
php框架C语言 php是什么语言

php是什么语言PHP是一种通用的开源脚本语言,也被称作“超文本预处理器”,PHP被广泛应用于Web网站的开发,它能够嵌入到HTML中使用。PHP的语法吸收了C语言、Java和Perl等不同开发语言的特点,更加便于开发人员的学习。PHP具有和JAVA类似的Class关键字。因为不需要虚拟机,以致速度比JAVA快5倍。PHP不仅可用来开发Web应用程序,也可

2023-09-11 03:06:18
php算是c语言的框架嘛 PHP是什么语言?
php算是c语言的框架嘛 PHP是什么语言?

PHP是什么语言?PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:HypertextPreprocessor)的缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比C

2023-10-04 12:03:45
web前端开发是c语言吗 web和c语言有什么区别?
web前端开发是c语言吗 web和c语言有什么区别?

学软件开发就是C语言吗?学习软件开发可不止只是c语言这么简单。当然了作为计算机语言的基础,C语言是我们都必须要学习掌握住的,这个是学习软件开发的最为基本的计算机语言之一。其次呢就是Java假如我们要去学习软件开发,那么,作为软件开发的第二个需要我们掌握的基本计算机语言就是JAVA啦,当然啦,这也包括了JAVA的延伸技术JS、JSP、AJAX等。当然还需要学习.NET体系接着我们还要学

2023-10-13 13:34:53
php框架C语言 如何用C语言编写PHP扩展的详解
php框架C语言 如何用C语言编写PHP扩展的详解

如何用C语言编写PHP扩展的详解1:预定义在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def内容是你希望定义的函数名以及参数:inta(intx,inty)stringb(stringstr,intn)2:到php源码目录的ext目录#cd/usr/local/php-5.4.0/ext/执行命令,生成对应扩展目录#./

2023-09-11 03:07:07