Tag: php

是否可以在C程序中调用PHP的C函数?

当您下载PHP的源代码时,您会发现所有的好东西都在各自的array.c , string.c等文件的ext/目录中。 现在,我想知道,有可能从具有这些PHP C文件的C程序调用这些函数吗?

如何使PHP和C / C ++相互交互

我有通常的PHP和MYSQL服务器运行,但我想执行一些CPU密集型计算。 因此,我希望运行一个C程序来处理该部分。 是否可以在服务器本身的PHP和C / C ++程序之间交换数据? 关心PP

用于php的独立语法和解析器

我正在寻找一个现成的PHP语法和解析器(至少5.2),理想情况下是一个实用程序/库,可以将PHP代码解析为可读的AST,例如xml。 解析器本身不必用php编写,源语言并不重要。

如何调试PHP的内部c代码?

有没有人在这里尝试过或者有可能吗? 我已经使用PHP很多年了,但从来不知道底层的c脚本。 有没有办法进入呢?

APC与自定义Mmap扩展

好的,所以我正在研究这个项目,要求我在桌面上进行内存键值存储查找。 我正在使用的业务规则也规定必须从每个单独节点的内存中读取该表,并且该表需要在多个请求中保持不变。 所以显而易见的解决方案是使用APC和apc_fetch(); 和apc_store(); 问题是该表将包含成千上万的键值对,并且将是几兆字节(这将运行的机器是内存庞然大物) 因此,如果APC在加载时对用户缓存进行序列化,那么我在性能方面会有一些顾虑。 如果不是那么这不应该是那么大的交易然后它实际上将是更优化的解决方案。 但是,如果它不是一个更好的替代方案,在C中编写一个自定义扩展,对已保留到磁盘的结构化排序文件进行二进制搜索? 或者(希望)会写自定义扩展根本不值得。 胜利,失败,快速思考? 提前致谢

在PHP中是否有像C中那样的相同运算符===?

在PHP中 , Identical Operatpr ( === )如果两边完全相等则返回TRUE ,并且它们的类型相同。 C世界有类似的东西吗?

C中的OpenSSL“Seal”(或通过shell)

我正在努力将一些PHP代码移植到C,它与Web API联系。 我遇到的问题是PHP代码使用函数openssl_seal() ,但我似乎无法找到任何方法在C中执行相同的操作,甚至在调用system()通过openssl 。 从openssl_seal()上的PHP手册: int openssl_seal(string $ data,string&$ sealed_data,array&$ env_keys,array $ pub_key_ids) openssl_seal()使用带有随机生成的密钥的RC4密封(加密)数据。 密钥使用与pub_key_ids中的标识符相关联的每个公钥加密,并且每个加密密钥在env_keys中返回。 这意味着可以向多个收件人发送密封数据(前提是已获得其公钥)。 每个收件人必须同时接收密封数据和使用收件人公钥加密的信封密钥。 实现这个的最佳方法是什么? 出于显而易见的原因,我真的不想每次都调用PHP脚本。

我们可以在几秒钟后强制退出C程序的执行

我们可以在几分之一秒(毫秒范围)或它使用的内存大小后强制退出C程序的执行吗? 这样,我想在无限循环中限制打印内容并限制缓冲区溢出。 我正在使用cygwin GCC4.3编译器,并希望将其作为PHP中的工具实现,它将C源作为输入并显示相应的输出。 PS – 1.我说毫秒因为我的C问题只涉及非常简单的算术/计算。 2.为了限制执行时间,php中的set_time_limit()将限制整个PHP脚本的执行时间,而不是分配给exec()的时间。

我如何从PHP调用C程序中的函数?

可能重复: 从PHP调用C / C ++库函数 我在C程序中有一些function。 我想从PHP调用这个函数。 我怎样才能做到这一点?

PHP中的XTEA加密和C中的解密

我正在尝试在网站和Arduino之间建立通信。 我需要validation从我的网站到Arduino的所有消息,所以我发现使用XTEA加密技术的时间更少。 我的网站PHP代码是: mcrypt_encrypt(MCRYPT_XTEA, ‘qwertyuiasdfghjk’, ‘asdfasdf’, MCRYPT_MODE_ECB); 其中“qwertyuiasdfghjk”是128位密钥,“asdfasdf”是64位消息。 在Arduino方面,我正在使用: void _xtea_dec(void* dest, const void* v, const void* k) { uint8_t i; uint32_t v0=((uint32_t*)v)[0], v1=((uint32_t*)v)[1]; uint32_t sum=0xC6EF3720, delta=0x9E3779B9; for(i=0; i<32; i++) { v1 -= ((v0 <> 5) + v0) ^ (sum + ((uint32_t*)k)[sum>>11 & 3]); sum -= delta; v0 -= ((v1 <> 5) + v1) ^ […]