问题标签 [php-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 C++ 的 PHP 扩展
我最近开始研究编写 PHP 扩展,并通读了这篇文章,它描述了使用 C++ 构建扩展的起点。当我开始定制时,我遇到了一个麻烦,试图将一些功能拆分到一个单独的文件中。一切编译和链接都没有问题,但是当我尝试实际使用扩展时出现错误。确切的信息是:
我在两台电脑上试过,都遇到同样的问题。我知道它找不到 Container 构造函数的实际实现,但我不知道如何让它在正确的位置找到。
在发布到这里之前,我已经尝试尽可能多地去除绒毛,但是 php 接口代码中仍然存在很多杂乱无章的地方。代码如下:
配置.m4:
接口.h:
接口.cpp:
内部结构.h:
内部结构.cpp
我正在使用以下命令构建它:
谢谢你尽你所能的帮助
php - PHP 扩展 - 从另一个 PHP 函数调用您自己的 PHP 函数
假设我们有一个自定义 PHP 扩展,例如:
如何从 RSHUTDOWN 处理程序调用 myfunction()?
php - 在 EasyPHP 文件夹中找不到 Zend 目录
我正在阅读有关在 C 中创建 php 扩展的教程。我正在使用 Visual Studio 2008 和 EasyPHP,其目录包括 /ext 文件夹(PHP 扩展目录)
这是教程: http: //www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/2/
我在第 4 步遇到了问题:
Blockquote 4. 在预处理器类别中,添加以下“附加包含目录”:...., ....\main, ....\Zend, ....\TSRM, ....\bindlib_w32。
我在 easyphp forlder 中搜索了 main 、 zend 、 tsrm 和 bindlib_w32 目录,但找不到它们。
如果 EasyPHP 不包含 zend 目录。如何将其部署在正确的目录中?
并提前谢谢你
php - 我在哪里下载 Windows 的 PHP 扩展?
我正在尝试使我的 PHP 安装与 PostgreSQL 一起使用,所以我需要 php_pgsql.dll
一个非常愚蠢的问题,但是我的 PHP5.3 在哪里可以得到一个?
我在这里读过:http: //php.net/manual/en/install.windows.extensions.php,但据说,是的,你需要这个 dll,但没有下载链接。我错过了什么?
默认情况下,我的安装中不存在 dll:
php - PHP Zend 引擎扩展和静态方法
在为 php (5.3) 编写扩展时,我想访问zend_class_entry
静态方法上的指针。
在非静态方法上,我可以像这样使用getThis()
宏和宏内Z_OBJCE_P
:
现在的问题:在静态方法上,getThis()
宏返回一个null
指针,所以我不能使用Z_OBJCE_P
宏。
有没有人为我提供zend_class_entry
从静态方法访问的解决方案?
php-extension - PHP 启动:无法加载动态库 '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/'
我在新的专用服务器中收到此错误日志。
PHP 启动:无法加载动态库 '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/'
在 php.ini 中
扩展 =
extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20060613
目录存在于服务器中,但我不明白为什么我会得到这个?
非常感谢
php - ArrayAccess 是如何工作的?
我一直在从 SPL 中阅读有关 PHP 常用接口的信息,例如Iterator
、Countable
和ArrayAccess
. 但是,我不完全了解它们是如何工作的。
他们的实现是否修改了 PHP 的核心功能,例如重载[]
数组运算符?
我还阅读了有关运算符扩展的信息,它提供了以与低级语言相同的方式重载其他运算符的能力。由于 Operator 扩展明确修改了 PHP 核心,我想知道是否ArrayAccess
在幕后以相同的方式进行操作?
我是一个修补匠,因此我发现在不知道引擎盖下的东西的情况下很难使用某些东西。
php - 检测服务器上是否安装了 FreeType PHP 扩展
如何测试以查看是否在运行 PHP 的服务器上安装了 FreeType 扩展?
我想在我的网站上制作一个简单的验证码系统,所以我使用imagettftext()
了它并且效果很好。但是如果服务器没有安装 FreeType 库怎么办?
那么有没有办法通过代码以某种方式检测 FreeType 库,如果它不存在,回退到类似的东西imagestring()
?
如果我不能使用imagettftext()
,我可能不得不寻找替代方法来绘制大字体文本,因为imagestring
最大尺寸不适合 CAPTCHA 之类的东西。
php - 无法在 PHP 5.3.5 中加载自定义 PHP 扩展
我正在尝试在 Windows XP/IIS 5.1 开发机器上加载自定义 PHP 扩展,但我失败了。
我有...
- 将 PHP 扩展 ( php_fortranwrapper.dll ) 放在我的 PHP 5.3.5 安装的“ext”子文件夹中
- 一直在编辑正确的php.ini文件(即与 phpinfo() 输出中列出的“加载的配置文件”条目对应的文件)
extension_dir
在php.ini中设置指向前面提到的“ext”子文件夹- 在php.ini中添加了一个
extension=php_fortranwrapper.dll
条目来加载 PHP 扩展 - 重新启动 IIS(通过
iisreset
)
在运行phpinfo()
脚本时,它会尝试加载页面,直到 FastCGI 超时并出现以下错误:
FastCGI 进程超出了配置的请求超时
如果我将 PHP 扩展名重命名为 php_fortranwrapper1.dll,我在逻辑上会看到以下错误:
PHP Startup: Unable to load dynamic library 'C:...\php-5.3.5\ext\php_fortranwrapper.dll' - The specified module找不到。
有关信息,我使用 PHP 5.3.5 和 PHP4Delphi 生成了 PHP 扩展,这是一个从 Delphi 源代码编译 PHP 扩展的工具。我的 Delphi 代码加载一个 Fortran DLL 并将一个整数传递给该 Fortran DLL 中的一个函数,并期望返回一个整数结果。
php - 如何制作/修补 php 源代码(c 代码)以从 php.ini 读取数组?
我有 php 经验,但我是 php 源代码和 php 扩展的新手。我想扩展 php 以便它从数组中随机选择一个 upload_tmp_dir,而不是一个固定的目录。
它看起来不像 php 并且 ini 文件读取代码具有解析 ini 文件中的数组的任何自然能力。
是否有任何现有代码或扩展(在树中或树外)允许将 ini 定义的数组映射到 php 中的全局数组 val?
否则我想我会引入像“num_upload_dirs”这样的ini val,然后是“upload_tmp_dir_1”和“upload_tmp_dir_2”等,然后明确检查所有的val。
或者自己将行解析和全局数组创建例程写入ini文件阅读器。两者都不是很吸引人。还有其他建议吗?