我正在尝试实现一些在 PHP 中使用 XSLTProcessor 类的代码。
我有一个本地项目,在 Windows 上的 Xampp 上运行并使用 Laravel。
线路:
$proc = new XSLTProcessor;
正在报告错误:
local.ERROR: Class "XSLTProcessor" not found
经过一番谷歌搜索后,我到目前为止已经尝试过以下操作:
我已经从这一行中删除了分号
extension=xsl
在Xampp目录下的php.ini中
我已从控制面板重新启动了我的 Apache 服务器。
我运行了
php -i
命令并返回报告:
xsl
XSL => enabled
libxslt Version => 1.1.37
libxslt compiled against libxml Version => 2.10.2
EXSLT => enabled
libexslt Version => 0.8.20
我在 php 文件的顶部添加了以下行:
use XSLTProcessor;
我的代码的相关部分是:
// LOAD XML
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->load($xmlFile);
// LOAD XSLT
$xsl = new DOMDocument('1.0', 'UTF-8');
$xsl->load($pathToMyXSLFile);
// INITIALIZE TRANSFORMER
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
// PASS PARAMETER VALUES
$proc->setParameter('', 'find-value', $findParam);
$proc->setParameter('', 'replace-value', $replaceParam);
// TRANSFORM SOURCE
$new_xml = $proc->transformToDoc($xml);
我收到错误的行是:
$proc = new XSLTProcessor;
刚刚设法解决了这个问题,但我想我会回答自己的问题而不是删除它 - 以防万一它将来对其他人有帮助。
除了在控制面板上重新启动 Apache 服务器之外,我还必须关闭命令提示符窗口 - 然后右键单击我的项目文件夹 - 启动另一个命令提示符并重新启动
php artisan serve
才能重新启动服务器。
这似乎现在有效。
在控制台上运行
php -i
将执行 PHP CLI 二进制文件。 Web 服务器很可能使用 SAPI 库。
使用带有
phpinfo()
的 PHP 页面来检查网络服务器中 PHP 使用的 PHP 配置。
确保配置文件正确并且启用了扩展名。
如果您刚刚更改了配置,则需要重新启动网络服务器和/或 PHP SAPI (php-fpm)。它们缓存配置并重用 PHP 进程以提高性能。
PHP CLI 调用始终是一个新过程。