标签: php-extension

将类转换为扩展名

我有一个PHP类,我想转换为PHP扩展.我检查了一些教程(tuxradar的编写扩展,php.net的扩展phpzend的扩展编写),这有点复杂.

我找到了文章"如何编写PHP扩展"(编者注:站点已经不存在),我想知道是否可以使用它来使它从某个路径中获取PHP类(比如说/home/website1/public_html/api/class.php),执行它并返回类实例.

这样它就可以在托管在同一服务器上的其他网站中使用 - 每个网站都可以简单地调用该函数,它将获得自己的实例.

那可能吗?

php php-extension

7
推荐指数
1
解决办法
2509
查看次数

用于php安装的Gmagick扩展 - 如何以及在哪里?

下载php-pear并按照链接"http://www.gerd-riesselmann.net/development/how-install-imagick-and-gmagick-ubuntu"中给出的步骤尝试安装gmagick扩展

pecl给出了一个错误 -

gmagick-1.0.9b1 $ pecl install gmagick

无法在首选状态"稳定"下载pecl/gmagick,最新版本是版本1.0.9b1,稳定性"beta",使用"channel://pecl.php.net/gmagick-1.0.9b1"安装安装失败


尝试添加频道(无结果) -

gmagick-1.0.9b1 $ pecl channel-add http://pecl.php.net/package/gmagick/1.0.9b1

错误:标记channel-add中找不到版本号:无效的channel.xml文件


找到链接"http://pecl.php.net/package/gmagick"下载php扩展名解压缩它找到以下文件 -

gmagick-1.0.9b1 $ ls

config.m4 gmagickdraw_methods.c gmagick_methods.c LICENSE php_gmagick_helpers.h README gmagick.c gmagick_helpers.c gmagickpixel_methods.c php_gmagick.h php_gmagick_macros.h

试过/config.m4只能找到更多错误

gmagick-1.0.9b1 $./ config.m4

./config.m4: line 1: syntax error near unexpected token `gmagick,'
./config.m4: line 1: `PHP_ARG_WITH(gmagick, whether to enable the gmagick extension,'
Run Code Online (Sandbox Code Playgroud)

自从没有结果的一天以来就一直在这里.回想起gmagick是图像处理的瑞士刀,很遗憾没有做太多的文档或者至少在任何地方安装链接.

急需帮助.

提前致谢.

php imagemagick image-processing php-extension graphicsmagick

7
推荐指数
2
解决办法
1万
查看次数

PHP http_build_url()和PECL安装

我下载了一个使用这个php函数http_build_url()的API.我每次运行我的应用程序时都说:

Fatal error: Call to undefined function http_build_url()
Run Code Online (Sandbox Code Playgroud)

我做了一个研究,发现我应该安装pecl_http来运行该功能.现在,我将它安装到我的系统中,顺便说一句,我使用的是Windows XP.我通过CMD通过goint将这个安装到我的xampp/php文件夹并运行此命令:

pecl install pecl_http
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法安装这个,因为它说:

ERROR: The DSP pecl_http.dsp does not exist.
Run Code Online (Sandbox Code Playgroud)

这个是否有解决方法?或任何我想让http_build_url()运行的想法.

javascript php php-extension

7
推荐指数
2
解决办法
1万
查看次数

PHP 5.3+ enable_dl没有启用dl()?

我正在尝试在Ubuntu 11.10上将第三方PHP扩展(.so)安装到PHP 5.3.6-13中,并在Web环境中使用它.供应商的文档建议使用该dl()函数动态加载库.

当我尝试他们的示例代码时,我发现dl()它不可用(致命错误:调用未定义函数dl())因为dl()函数在PHP 5.3中已弃用.但有一个enable_dl在php.ini中配置规则,以及其他来源说,我应该能够使用DL()仅仅通过改变php.ini中的变量(enable_dl=On,safe_mode=Off,未上市disable_functions)和重启动Apache.当我尝试时,dl()仍未定义.

所以我深入研究PHP 5.3 SAPI更改说明并找到:

dl()函数现在默认禁用,现在只能在CLI,CGI和嵌入的SAPI下使用.

这是否意味着使用Web SAPI dl()不仅在PHP 5.3+中"默认禁用",而且实际上"即使修改PHP配置选项,无论我做什么都完全不可用"?这就是我的感觉,因为dl()无论我调整什么,我都无法上班.

澄清:我可以修改php.ini并直接加载扩展,所以这不是关于如何使扩展工作的问题,而是关于dl()PHP 5.3+中的函数及其状态的问题.如果它在任何情况下都不再可用,我希望能够告诉供应商,以便他们可以更新他们的文档.但如果它应该可用而且我只是遗漏了一些东西,我也想听听.

php php-extension

7
推荐指数
1
解决办法
2万
查看次数

找不到XML扩展

我有centos 6.5服务器,当我尝试使用pecl我安装php扩展时出现以下错误:

XML Extension not found
Run Code Online (Sandbox Code Playgroud)

所有文档都说默认包含此扩展名...为​​什么此错误仍然存​​在?

php centos php-extension

7
推荐指数
1
解决办法
1万
查看次数

添加 .so 作为 php 扩展名

我有一个使用 SWIG 生成的 .so 文件。我想使用那里定义的函数作为 php 扩展。如何将它们添加为 php 扩展?

我将.so添加到扩展目录中,并在php.ini中添加一行:“extension=example.so”,然后重新启动apache。

不过,当我运行:时php -d "extension=example.so" -m,它不会显示为扩展名,并显示: "Unable to load dynamic library '/usr/lib/php5/...../example.so. cannot open shared object file: Permission denied in Unknown on line 0"

然而,权限是 777

权限

权限

PHP .so 文件夹

扩展文件夹

php.ini 文件

php.ini 文件 在此输入图像描述

检查扩展名[检查扩展名[5]

扩展名“example.so”不存在。

php dll swig shared-objects php-extension

7
推荐指数
1
解决办法
9962
查看次数

安装mailparse php7 mbstring错误

我目前正在努力将我们的项目放在php7下.

当尝试编译mailparse扩展或使用pecl来安装它时,我收到此错误:

#error The mailparse extension requires the mbstring extension!

我确实安装了php7.0-mbstring并尝试将mbstring扩展名与mailparse源代码放在一起.我也尝试使用我的旧C技能并尝试自己包含这些库而没有成功.

你们中的任何人都知道如何解决我的问题?(不像我在某些论坛中看到的那样编辑代码)

谢谢

email-parsing php-extension php-7

7
推荐指数
1
解决办法
5678
查看次数

如何在 CakePHP 中启用 intl 扩展?

我正在为我的项目使用 CakePHP 3 和 MAMP Pro 服务器。当我尝试烤蛋糕时,出现此错误:

致命错误:您必须启用 intl 扩展才能使用 CakePHP。

我什在我的 php.ini 文件中包含了intl.soextension=php_intl.dll,但无法找出此错误的解决方案。

php-extension intl mamp-pro cakephp-3.0 php-7

7
推荐指数
2
解决办法
2万
查看次数

PHP Sql Server PDOException:找不到驱动程序

我的服务器是Windows 2008服务器.PHP V7.2.7已安装并正在运行.Sql Server 11(64位)已安装并正在运行(有几个asp.net应用程序在运行且已经在使用该数据库)

我从Microsofts网站下载了PHP Sql Server驱动程序,并将.dll文件放在PHP ext目录中.

在我的PHP.ini中,我添加了:extension=php_pdo_sqlsrv_7_nts_x64

在我的.php文件中,我用来测试我的数据库连接:

 $SqlServer = "THISSERVER\SQLEXPRESS";
 $SqlServerCon = new PDO("sqlsrv:server=$SqlServer;Database=TheDatabase", "DbUName", "DbPassword"); 
if (!$SqlServerCon) {die('Unable To Connect to Sql Server');}
else
{echo "Connection Successful";}     
Run Code Online (Sandbox Code Playgroud)

我得到:( PHP Fatal error: Uncaught PDOException: could not find driver in D:\Inetpub\wwwroot\TechStory2\DBtest.php:7第7行是$ SqlServerCon行).

我做错了什么?以及如何建立与Sql Server的连接需要做什么?

php sql-server php-extension php-ini

7
推荐指数
1
解决办法
2773
查看次数

如何安装ITL扩展

我想安装PHP ITL扩展,以便我可以使用它.

我需要编译它,如果是这样,我该如何编译它?我需要它适用于Windows和Linux.

php php-extension

6
推荐指数
1
解决办法
408
查看次数