我的PHP应用程序有一个数字运算部分,只是为了缓慢PHP,所以我想构建一个自定义C扩展,但是不可能找到任何好的参考开始:(
是否有关于如何做这样的事情的指南?
使用VC9(2008)和VC10(2010)使用后续步骤编译我自己的php扩展后:
http://blog.slickedit.com/2007/09/creating-a-php-5-extension-with-visual-c-2005/
初始化php时我得到下一个错误:
PHP Warning: PHP Startup: FirstPHPExt Module: Unable to initialize module
Module compiled with build ID=API20090626,TS
PHP compiled with build ID=API20090626,TS,VC9
These options need to match
in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
为什么不说我用VC9编译模块?
更多信息:
操作系统:Windows7 x64 PHP:5.3.3,TS,VC9
我需要在OS X 10.9上从PHP连接到SQL Server,所以我做了:
brew install php55
brew install php55-pdo-dblib
Run Code Online (Sandbox Code Playgroud)
这很好用,但我想知道:是否有可能在OS X 的捆绑版本的PHP中安装dblib扩展(或任何其他PHP扩展),而无需编译全新的PHP版本?
你在哪里找到必要的下载,你通常做什么来添加PHP的扩展?在研究该主题后,这一点令人惊讶地不清楚.
我在获取文件信息时遇到问题。它在 PHP.ini 中启用,但是当我运行 php -m 时它没有列出。我有 PHP 5.5,所以它应该是标准的,不需要 pecl。我是新手,很困惑,所以请善待。
php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
ereg
exif
filter
ftp
gd
gettext
hash
iconv
imagick
imap
ionCube Loader
json
libxml
mbstring
mcrypt
mysql
openssl
pcre
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
XCache
XCache Cacher
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
XCache
XCache Cacher
the ionCube PHP Loader
Run Code Online (Sandbox Code Playgroud)
在我的 PHP.ini
extension = "fileinfo.so"
Run Code Online (Sandbox Code Playgroud) 想补充一下 GD zip扩展到php,完成了phpize ./configure make make install例程,还是找不到 GD压缩.任何的想法 ?
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/zip # phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/zip # ./configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking …Run Code Online (Sandbox Code Playgroud) 我只是在试验PHP扩展,我想知道在扩展中调用对象构造函数的建议/首选方法是什么.我已经读过,通过调用object_init_ex函数,不会自动调用该对象的构造函数.从我所做的测试来看,这似乎也是正确的.我们假设我有以下代码,其中'Person'是有效的类名:
zend_class_entry *class_entry = NULL;
zend_string *class_name = zend_string_init("Person", sizeof("Person") - 1, false);
class_entry = zend_lookup_class(class_name);
if (class_entry != NULL) {
object_init_ex(return_value, class_entry);
/* call the Person::_construct method */
} else {
RETURN_NULL();
}
Run Code Online (Sandbox Code Playgroud)
如何在object_init_ext调用后调用构造函数?另外,在这方面,php 5和php 7之间会有什么区别吗?
我想安装 mailparser 扩展。\n我下载了 php_malparse.dll (将其放入 php/ext 文件夹)。\n还添加:extension=php_mailparse.dll 到 php.ini
但它不起作用,并且 php_info() 也不显示它。
\n\n在日志中我得到:
\n\n\n\n\nPHP 警告:PHP 启动:无法加载动态库 'E:\\xampp\\php\\ext\\php_mailparse.dll' - %1 \\xef\\xbf\\xbd\\xef\\xbf\\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xe2\x80\ x8c\xe2\x80\x8b\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\ \xbd\\xef\\xbf\\xbd\xe2\x80\x8c\xe2\x80\x8b\\xef\\xbf\\xbd\\xef\\xbf\xe2\x80\x8c\xe2\x80\x8b \\xbd\\xef\\xbf\\xbd\\xef\xe2\x80\x8c\xe2\x80\x8b\\xbf\\xbd\\xef\\xbf\\xbd\xe2\x80\x8c\xe2 \x80\x8b\\xef\\xbf\\xbd Win32.\\r\\n 位于第 0 行未知
\n
我需要帮助,我该如何解决这个问题?\n谢谢!
\n尝试使用Alpine进行部署时出现此错误:
phpoffice/phpspreadsheet 1.2.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile:
FROM php:7.2-alpine
RUN apk update
RUN apk add zlib-dev gd php7-gd
RUN docker-php-ext-install sockets pdo_mysql zip
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd
Run Code Online (Sandbox Code Playgroud)
错误是詹金斯跑步的输出。我认为这里附近某处失败了...
build:
docker run --rm --tty --user $$(id -u):$$(id -g) \
--volume "$$(pwd)":/app \
--volume "$$(pwd)/ops/jenkins/github.token":/tmp/auth.json \
--volume "$$(pwd)/ops/jenkins/composer_trust_github.com":/root/.ssh/config \
composer install --no-dev
rm -rf ops/docker/app.tar.gz
tar -czvf ops/docker/app.tar.gz -X ops/jenkins/build_excludes .
docker run --rm --tty --user …Run Code Online (Sandbox Code Playgroud) 我正在使用 docker 使用应用程序(我不是很熟悉),我需要添加 2 个新的 PHP 扩展。我Dockerfile对现有图像进行了如下更改:
FROM php:7.2-fpm
RUN apt-get update
RUN apt-get install -y git unzip
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer
RUN apt-get install -y git libpng-dev \
&& docker-php-ext-install gd
RUN apt-get install -y mysql-client \
&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
&& docker-php-ext-install pdo_mysql
RUN apt-get install -y libgmp-dev bcmath \
&& docker-php-ext-configure gmp \
&& docker-php-ext-install gmp \
&& docker-php-ext-install bcmath
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
ADD …Run Code Online (Sandbox Code Playgroud) 问题:
使用 tidy_parse_string() 返回:
调用未定义的函数
尝试:
搜索:
apt-cache search tidy
Run Code Online (Sandbox Code Playgroud)
但我只在返回的列表中看到这个 php 扩展:
php5-tidy - php5 的整洁模块
如何为 PHP 7.2 安装模块?
我尝试通过删除 ; 在 fpm 7.2 文件夹中的 php ini 中启用模块:
;扩展=整洁
但是没有扩展名的路径,所以我想它还没有安装。
提示: Tidy 自己的页面说您使用“配置选项”进行安装 - 我不知道这与 apt 安装的软件包有什么关系。
https://www.php.net/manual/en/tidy.installation.php
细化:
该包在此处列出:
https://packages.ubuntu.com/disco/php7.2-tidy
但是在搜索 apt-get 时它不会显示,即使在更新列表之后也是如此。只显示 php5 扩展名?
php-extension ×10
php ×8
docker ×2
alpine-linux ×1
c++ ×1
fileinfo ×1
macos ×1
object ×1
pdo ×1
pecl ×1
php-7 ×1
php-gd ×1
provisioning ×1
tidy ×1