phpquery не работает

Привет, друзья, я скачал плагин phpQuery с их сайта. Но всякий раз, когда я пытаюсь запустить файл demo.php phpQuery, я получаю следующую ошибку: -

Ошибка:-

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. Какое дополнительное расширение мне нужно? Может ли кто-нибудь помочь мне с этой ошибкой ??


person Php Geek    schedule 31.01.2013    source источник
comment
@zneak в чем проблема??   -  person Php Geek    schedule 31.01.2013
comment
Обнаружено старое XML-расширение PHP4 DOM. phpQuery не будет работать, пока это расширение не будет включено. ошибка кажется мне очевидной   -  person    schedule 31.01.2013
comment
Да, даже я понял, но нужно ли мне добавлять новое расширение, и если да, то как ››   -  person Php Geek    schedule 31.01.2013
comment
@PavanK, проблема заключалась в форматировании вашего сообщения об ошибке. Если вы нажмете на отредактированную ссылку выше, вы увидите, что именно я изменил. По сути, я взял ваше однострочное сообщение об ошибке и разделил его на несколько строк.   -  person zneak    schedule 31.01.2013


Ответы (3)


Это сообщение об ошибке вводит в заблуждение. Если вы просматриваете phpQuery source, вы увидите, что он действительно должен говорить обратное: «phpQuery не будет работать, пока это расширение не будет отключено». (По крайней мере, исходный код заставил меня поверить в это, поскольку функции перестают существовать, когда вы отключаете расширения, а не когда вы их включаете.)

Ссылка на это расширение на веб-сайте PHP больше не доступна, но archive.org все еще имеет его копию. Эта страница сообщает нам, что имя DLL расширения PHP4 DOM — php_domxml.dll, так что это то, что вам нужно удалить.

В вашем файле php.ini вам нужно прокомментировать строку, где написано extension=php_domxml.dll. Вы можете сделать это комментарием, поставив перед строкой точку с запятой.

Все это предполагает, что вы не ошиблись в своей версии PHP. Я предлагаю вам проверить <?php phpinfo(); ?>, чтобы убедиться, что вы используете ожидаемую версию PHP, если вы еще этого не сделали. Я нахожу удивительным, что установка PHP5 по-прежнему использует расширение PHP4.

person zneak    schedule 31.01.2013

phpQuery пытается определить, есть ли в вашей системе расширение DOM XML PHP 4, или расширение 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 № 224.

person Lightness Races in Orbit    schedule 31.01.2013
comment
+1 Потрясающе! У меня была эта проблема однажды. Я только что установил PHP5, как вы сказали. Это сработало! Это сработало! - person Mark Garcia; 31.01.2013
comment
@MarkGarcia: я рад это слышать. - person Lightness Races in Orbit; 31.01.2013
comment
У меня есть php 5 ... Я даже упомянул свою версию php, ее 5.2.9-1 - person Php Geek; 31.01.2013
comment
@PavanK: дважды проверьте это, так как это кажется маловероятным. Затем проверьте наличие расширения domxml в вашей конфигурации и удалите его. - person Lightness Races in Orbit; 31.01.2013
comment
@LightnessRacesinOrbit Сначала вы упомянули о включении .... да, после его отключения он работает нормально ... - person Php Geek; 31.01.2013
comment
@PavanK: Да, моя ошибка... и ошибка phpQuery! Я зарегистрировал ошибку с phpQuery, чтобы они исправили текст в будущем. - person Lightness Races in Orbit; 31.01.2013

Я бы посоветовал вам прочитать сообщение об ошибке. У вас старая версия DOM XML.

Вы можете получить всю необходимую информацию о новой версии в официальной документации, но она установлена ​​по умолчанию. поэтому я бы посоветовал вам обновить WAMP до последней версии.

person LuckySpoon    schedule 31.01.2013