PHP Class SoapClient not found解决方法

yipeiwu_com5年前PHP代码库

要用到 SoapClient, new 了一个提示 Class ‘SoapClient' not found, 检查了下 phpinfo, 原因是当初没有编译这个扩展, 只好现在再加上了。

php在调用webservice时,报告如下类似错误:

( ! ) Fatal error: Class 'SoapClient' not found in E:/WebSrv/CI/system/libraries/WebService.php on line 17

解决方法:

打开php.ini,找到php_soap.dll , 把前面的分号去掉

;extension=php_soap.dll

前提是,已经安装了 php_soap.dll

笔者的 PHP 安装在 /usr/local/php/ 目录下,如果没有安装可以参考下面的方法

$ cd /home/downloads/php-5.6.12   # 进入到 PHP 源码目录
$ cd ext/soap  # 进入 soap 扩展目录
$ /usr/local/php/bin/phpize # 准备添加扩展
$ ./configure -with-php-config=/usr/local/php/bin/php-config --enable-soap   # 启用 SOAP
$ make
$ make install

扩展安装完成后提示扩展已安装到这个目录下:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

编辑 php.ini 文件, 启用 extension_dir 扩展目录, 添加 soap.so 扩展:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
; On windows:
; extension_dir = "ext"
extension=soap.so    # 添加 SOAP 扩展

重启 php-fpm 使生效

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

Windows 下编辑 php.ini 取消该行注释即可

extension=php_soap.dll

相关文章

解析PHP中ob_start()函数的用法

ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有"Header had all ready send by"的错误,这时可以...

PHPer 需要了解的 5 个 Composer 小技巧

Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《PHP管理依赖(dependency)关系工具 Composer 安装与使用》。本文介绍使用Composer的五...

PHP中文乱码解决方案

汉字乱码真是一个悲催的事情,JAVA讨厌汉字,PHP也不喜欢汉字;     Java乱码最终使用了spring给出的过滤器来过滤,处处过滤,其实影响了速度,...

php去除二维数组的重复项方法

php中去一维数组的重复项可以通过php内置函数array_unique(),但是php的array_unique函数对多维数组并不适用,怎么才能去除二维数组中的重复项呢? 以下...

谷歌音乐搜索栏的提示功能php修正代码

谷歌音乐搜索栏的提示功能php修正代码

问题描述 在加载页面的时候, 将光标快速定位到搜索栏上, 待页面加载完成, 搜索栏进行初始化后会显示搜索提示. 此时输入的任何内容将成为搜索提示的一部分而不是搜索关键字. 截图如下:...