标签: php-extension

如何安装ITL扩展

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

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

php php-extension

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

何时释放PHP扩展中的内存?

我想在PHP扩展中创建并返回一个数组数组.根据我的理解,我应该使用数组元素分配空间emalloc(),但我不明白的是什么时候适合释放它.我有一个类似于这个的PHP函数:

PHP_FUNCTION(test)
{
    int i;
    zval **pt = emalloc(sizeof(zval*) * 10);

    array_init(return_value);

    for (i = 0; i < 10; ++i) {
        MAKE_STD_ZVAL(pt[i]);
        array_init(pt[i]);
        add_index_double(pt[i], 0, 1);
        add_index_zval(return_value, i, pt[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该在哪里释放分配的内存pt

c php-extension

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

如何将zval转换为矢量用于php扩展?

我正在为我的c ++库编写一个php扩展,其定义如下:

bool getPids(map<string,string> pidsMap, vector<string> ids);
Run Code Online (Sandbox Code Playgroud)

现在,我正在为这样的上述函数编写一个php包装器.

ZEND_METHOD(myFInfo, get_pids)
{
    zval *idsArray;

    if (zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "a",
                                &idsArray ) == FAILURE )
    {
        RETURN_NULL();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想调用getPids(),但我不知道将idsArray作为向量传递给c ++函数的正确方法.

在网上搜索之后,我找到了一个例子,其中zval数组被迭代以读取每个值,我想也许我可以用它来创建一个向量.

PHP_FUNCTION(hello_array_strings)
{
    zval *arr, **data;
    HashTable *arr_hash;
    HashPosition pointer;
    int array_count;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &arr) == FAILURE) {
        RETURN_NULL();
    }

arr_hash = Z_ARRVAL_P(arr);
array_count = zend_hash_num_elements(arr_hash);

php_printf("The array passed contains %d elements", array_count);

for(zend_hash_internal_pointer_reset_ex(arr_hash, &pointer); zend_hash_get_current_data_ex(arr_hash, (void**) &data, &pointer) == SUCCESS; 

zend_hash_move_forward_ex(arr_hash, &pointer)) {

            if (Z_TYPE_PP(data) == IS_STRING) { …
Run Code Online (Sandbox Code Playgroud)

php c++ php-extension php-internals

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

PHP扩展未在phpinfo中加载

所以我在Mountain Lion上运行MAMP并且我已经使用pecl安装了gmagick和imagick,两者都是相关候选者(主要是因为gmagick没有稳定版本而且想象力3.0.0没有安装,它给出了一个make错误).当我在终端中运行php -i但不在phpinfo()中时出现模块,我检查了php.ini两者都是一样的,所以这不是问题.但是我已经安装了bitset(这是一个稳定的版本) )它出现在phpinfo()和php -i中.所以我的问题是PHP有没有任何配置选项,如果它们不稳定,它们不会加载扩展?顺便说一句,在更改了ini文件后,我确实重启了我的服务器.

php imagick php-extension gmagick

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

将PHP 7安装到我的服务器后,不会加载PHP模块

我在我的服务器上安装了PHP 7(因此,我没有/ etc/php5和/etc/php/7.0).当我运行我的网络应用程序时,我无法看到我之前的任何CURL(或分叉).

起初我得到了这个错误的消息:

消息:调用未定义的函数curl_init()

并在安装php7-curl之后启用它 - 在info()函数和此测试代码上获得批准:

var_dump(_isCurl());
function _isCurl(){
    return function_exists('curl_version');
}
Run Code Online (Sandbox Code Playgroud)

返回TRUE.

但是当我的代码中有一个实际的CURL时,我得到了这个错误:

PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20151012/php_curl.dll' - /usr/lib/php/20151012/php_curl.dll:无法打开共享对象文件:没有这样的文件或目录在第0行的未知中

/usr/lib/php/20151012/我只有.so文件,这没有任何意义.(同样适用于/usr/lib/php5/20131226文件夹).那么它想要获得什么以及为什么从那里获得?

如何配置我的新php.ini文件以获取以前的模型设置?(如果可能,也可以使用已启用的PCNTL_FORK)如何使其与curl一起使用?到底发生了什么???

编辑04.05.2016:

好吧,我决定改变它curl.so,现在得到这个消息PHP Warning: Module 'curl' already loaded in Unknown on line 0,然后我禁用它,不知何故,卷曲现在正在工作(评论卷曲;extension:curl.so;extension:php_curl.dll.到底是什么.

php ini curl php-extension ubuntu-server

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

在 php7.0 上安装 ncurses 扩展

我尝试ncurses为 php7.0安装扩展,但出现此错误

/bin/bash /tmp/pear/download/ncurses-1.0.2/libtool --mode=compile cc  -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/download/ncurses-1.0.2/ncurses.c -o ncurses.lo 
libtool: compile:  cc -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/ncurses-1.0.2/ncurses.c  -fPIC -DPIC -o .libs/ncurses.o
/tmp/pear/download/ncurses-1.0.2/ncurses.c:36:37: error: unknown type name ‘zend_rsrc_list_entry’
 static void ncurses_destruct_window(zend_rsrc_list_entry *rsrc TSRMLS_DC)
                                     ^
/tmp/pear/download/ncurses-1.0.2/ncurses.c:45:36: error: unknown type name ‘zend_rsrc_list_entry’
 static void ncurses_destruct_panel(zend_rsrc_list_entry *rsrc TSRMLS_DC)
                                    ^
/tmp/pear/download/ncurses-1.0.2/ncurses.c: In function ‘zm_startup_ncurses’:
/tmp/pear/download/ncurses-1.0.2/ncurses.c:247:57: …
Run Code Online (Sandbox Code Playgroud)

php-extension php-7 php-ncurses

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

在MacOS上安装PHP intl扩展

我在Cakephp的安装中遇到了一些问题.我希望任何人都面临同样的问题.

错误

- cakephp/cakephp 3.3.9 requires ext-intl * -> the requested PHP extension intl is missing from your system.
Run Code Online (Sandbox Code Playgroud)

根据错误消息,我删除了; 从php.ini文件但仍然得到相同的错误.

我有Mac 10.12 Sierra,Xampp 5.6.28-1版本和PHP 5.6.24版本.

php xampp macos php-extension

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

无法加载动态库 'php_libsodium'

我正在尝试安装 libsodium php 扩展(https://pecl.php.net/package/libsodium/1.0.6/windows)。

当我运行时php -m,libsodium 出现在列表中。但是,当我转到 phpinfo 时,它没有列出。

我还注意到 apache 给了我错误: PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\xampp\\php\\ext\\php_libsodium.dll' - The specified module could not be found.\r\n in Unknown on line 0

我已经检查了多次,文件肯定存在并且匹配正确的架构和线程安全,所以我不知道还有什么可能导致这种情况。

任何帮助,将不胜感激。

php apache xampp php-extension libsodium

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

如何在 macOS Mojave 上启用 PHP Intl 扩展?

我正在尝试在 macOS Mojave 上安装 Magento (2.3.0)。Magento 显示PHP Extension intl.丢失。

我尝试了以下解决方法:

  1. 使用复制 php.ini cp /etc/php.ini.default php.ini
  2. 删除了“;” 前extension=php_intl.dll
  3. 重启阿帕奇 sudo apachectl restart

但是以上都没有解决。

在检查时php -v,我看到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll' - 
dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll, 
0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug- 
non-zts-20160303/php_intl.dll in Unknown on line 0
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
Run Code Online (Sandbox Code Playgroud)

/usr/lib/php/extensions/no-debug-non-zts-20160303即只有 …

php macos php-extension macos-mojave

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

如何在 Windows 中安装 php-xml 扩展?

我正在尝试在我的 laravel 项目上安装 laravel-excel。该库需要启用以下 php 扩展。

  • PHP 扩展 php_zip
  • PHP 扩展 php_xml
  • PHP 扩展 php_gd2
  • PHP 扩展 php_iconv
  • PHP 扩展 php_simplexml
  • PHP 扩展 php_xmlreader
  • PHP 扩展 php_zlib

我相应地更改了 php.ini。但我无法下载相关的 .dll 文件以复制到 ext 文件夹。有没有地方可以下载这些?

php php-extension web laravel

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