为什么我使用 PHP / Xampp / Laravel / Windows 时收到错误“找不到类“XSLTProcessor””

问题描述 投票:0回答:2

我正在尝试实现一些在 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;
php laravel xslt xampp
2个回答
0
投票

刚刚设法解决了这个问题,但我想我会回答自己的问题而不是删除它 - 以防万一它将来对其他人有帮助。

除了在控制面板上重新启动 Apache 服务器之外,我还必须关闭命令提示符窗口 - 然后右键单击我的项目文件夹 - 启动另一个命令提示符并重新启动

php artisan serve
才能重新启动服务器。

这似乎现在有效。


0
投票

在控制台上运行

php -i
将执行 PHP CLI 二进制文件。 Web 服务器很可能使用 SAPI 库。

使用带有

phpinfo()
的 PHP 页面来检查网络服务器中 PHP 使用的 PHP 配置。

确保配置文件正确并且启用了扩展名。

如果您刚刚更改了配置,则需要重新启动网络服务器和/或 PHP SAPI (php-fpm)。它们缓存配置并重用 PHP 进程以提高性能。

PHP CLI 调用始终是一个新过程。

© www.soinside.com 2019 - 2024. All rights reserved.