0

嗨朋友们,我已经从他们的网站下载了 phpQuery 插件。但是每当我尝试运行 phpQuery demo.php 文件时,我都会收到以下错误:-

错误:-

Fatal error: Uncaught exception 'Exception' with message
    "Old PHP4 DOM XML extension   detected. phpQuery won't work until this extension is enabled."
in   C:\wamp\www\phpQuery\phpQuery\phpQuery.php:483
Stack trace:
    #0 C:\wamp\www\phpQuery\phpQuery\phpQuery.php(271): phpQuery::createDocumentWrapper('<div/>',  NULL)
    #1 C:\wamp\www\phpQuery\demo.php(11): phpQuery::newDocument('<div/>')
    #2 {main} thrown in C:\wamp\www\phpQuery\phpQuery\phpQuery.php on line 483

我的 php 版本是 5.2.9-1。我需要什么额外的扩展?谁能帮我解决这个错误??

4

3 回答 3

3

此错误消息具有误导性。如果您查看 phpQuery 的源代码,您会发现它确实应该说相反的意思:“在禁用此扩展之前,phpQuery 将无法工作”。(或者至少,这就是源代码让我相信的,因为当你禁用扩展时功能停止存在,而不是当你启用它们时。)

PHP 网站上此扩展的参考不再可用,但archive.org 仍然有它的副本。这个页面告诉我们 PHP4 DOM 扩展的 DLL 名称是php_domxml.dll,所以这是你需要删除的。

在您的 php.ini 文件中,您需要注释它所说的行extension=php_domxml.dll。您可以通过在该行前加上分号来使其成为注释。

这一切都假设您没有弄错您的 PHP 版本。我建议您检查 a<?php phpinfo(); ?>以验证您是否运行了您期望的 PHP 版本,如果您还没有这样做的话。我发现 PHP5 安装仍然使用 PHP4 扩展名令人惊讶。

于 2013-01-31T04:07:27.797 回答
2

phpQuery 试图检测您的系统上是否有 PHP 4 DOM XML 扩展,还是取代它的PHP 5 DOM 扩展

不幸的是,它在对你撒谎。您可以在此处查看相关的 phpQuery 代码

if (function_exists('domxml_open_mem'))
    throw new Exception("Old PHP4 DOM XML extension detected. phpQuery won't work until this extension is enabled.");

它的意思是“禁用”,而不是“启用”。您必须在配置中禁用“DOM XML”扩展。

这个问题被归档为phpQuery issue #224

于 2013-01-31T04:02:37.607 回答
-2

我建议您阅读错误消息。您有旧版本的 DOM XML。

您可以在官方文档中获得有关新版本所需的所有信息- 但它是默认安装的,因此我建议您将 WAMP 更新到最新版本。

于 2013-01-31T04:02:14.757 回答