Класс PHP Tidy не найден, ошибка

Я писал код для восстановления строки html. Я прочитал несколько хороших решений, которые работают с классом Tidy PHP, но у меня были некоторые проблемы с ним. То, что написано в этом посте, это именно то, что я хочу, но мне нужно установить/загрузить класс PHP Tidy. Закрыть теги из усеченной строки HTML

Я работаю над PHP 5.5.4. Я попытался установить приборку, следуя некоторым инструкциям, но ничего не добавилось. Когда я вызываю аккуратный класс $tidi = new \tidy();, NetBeans предлагает мне класс и щелкнув по нему (Ctrl + щелчок), я вижу его, но обновляя страницу, я получаю сообщение об ошибке Class 'tidy' not found in ... /myfile.php line ...

Точно так же я использовал класс $myVar = new \DomDocument();, но он отлично работает.

Проверяя, загружено ли расширение Tidy, как показано ниже, я получаю сообщение «НЕ ЗАГРУЖЕНО».

echo extension_loaded('tidy') ? "LOADED" : "NOT LOADED";

Пожалуйста, кто-нибудь может объяснить мне, как работает Tidy и как я могу его настроить? Моя версия Ubuntu13.10.


person Roberto Rizzi    schedule 29.01.2014    source источник
comment
Вы включили расширение в файле php.ini? Ваша папка extensions содержит необходимое расширение? Какую среду PHP вы используете (Xampp, loacl apache, сервер LAMP...)?   -  person ToBe    schedule 29.01.2014
comment
Я попытался включить его, но я не очень хорошо понял, как я могу это сделать. Можете ли вы объяснить мне, что я должен включить и как я могу включить расширение? Я установил сервер LAMP отдельно. Спасибо за быстрый ответ   -  person Roberto Rizzi    schedule 29.01.2014
comment
Я столкнулся с этим, потому что в документах PHP указано, что это расширение связано с PHP. 5 и выше и устанавливается с помощью параметра конфигурации --with-tidy. и я им поверил. Мне пришлось установить yum, как намекают ответы ниже.   -  person Patrick M    schedule 21.03.2018


Ответы (2)


Ваш php.ini содержит список строк «extension=somefile.so». Вы пропустили правильную строку для вашего аккуратного расширения. Он должен быть включен, но прокомментирован в вашем файле. Просто удалите ; символ перед одной строкой для аккуратного расширения и перезапустите веб-сервер.

Образец для окон:

extension=php_tidy.dll

Пример для Linux:

extension=tidy.so

В некоторых дистрибутивах Linux его необходимо установить, если вы не можете найти файл расширения tidy.so в папке расширений. Выполните правильную строку в зависимости от вашего дистрибутива. Вы должны быть root или использовать sudo:

CentOS/RedHat (замените на правильную библиотеку, найденную через yum search php-tidy:

yum install rh-php56-php-tidy.x86_64

Дебиан/Убунту:

apt-get install php5-tidy
person ToBe    schedule 29.01.2014
comment
Большое спасибо, но пока ничего не работает. Затем я попытался просто добавить extension=tidy.so в /etc/php5/apache2/php.ini и перезапустить apache, ничего не произошло. После этого я предложил locate tidy.so, и он дал /usr/lib/libtidy.so. Затем я установил extension_dir = "/usr/lib", но ничего не произошло. Если я запускаю sudo apt-get install php5-tidy у меня ошибка - person Roberto Rizzi; 29.01.2014
comment
Не меняйте папку расширений. Какой дистрибутив вы используете? Были ли у вас какие-либо ошибки при запуске, когда вы просто включали так? - person ToBe; 29.01.2014
comment
Это должно быть: yum install rh-php56-php-tidy.x86_64 - person Dylan B; 21.02.2017
comment
@DylanB Обновлено. - person ToBe; 29.05.2017

У меня была такая же проблема, и я, наконец, понял это, это решение для Ubuntu 14.04 с xampp.

шаг 1
откройте терминал и введите следующее

sudo apt-get install php5-tidy

шаг 2
пора выяснить, куда был установлен "tidy.so".


для меня он был установлен в "/usr/lib/php5/20121212/tidy.so"

шаг 3

найдите и откройте файл php.ini, найдите раздел расширений и вставьте следующую строку

extension=/usr/lib/php5/20121212/tidy.so

шаг 4

вернитесь к своему терминалу и выполните следующее, чтобы перезапустить сервер.

sudo /opt/lampp/lampp restart

шаг 5

проверка того, что новый аккуратный модуль был загружен либо

в терминале

php -m

и/или создав файл на вашем сервере в htdocs с именем test.php и вставив следующий код

<?php echo extension_loaded('tidy') ? "LOADED" : "NOT LOADED"; ?>

затем запустите этот файл test.php в своем браузере, и он должен прочитать «ЗАГРУЖЕНО»

если нет, вернитесь и просмотрите предыдущие шаги, пока не получите это сообщение.

Надеюсь, это поможет, :)

person cecil merrel aka bringrainfire    schedule 19.01.2015