【问题标题】:PHP Tidy class not found, error找不到 PHP Tidy 类,错误
【发布时间】:2014-02-21 12:14:01
【问题描述】:

我正在编写一些用于修复 html 字符串的代码。 我阅读了一些适用于 Tidy PHP 类的不错的解决方案,但我遇到了一些麻烦。 这篇文章所写的正是我想要的,但我需要安装/加载 PHP Tidy 类Close tags from a truncated HTML string

我正在处理PHP 5.5.4。 我尝试按照一些教程安装 tidy,但没有附加任何内容。 当我调用 tidy 类 $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 的工作原理以及如何设置它? 我的 Ubuntu 的版本是 13.10

【问题讨论】:

  • 您是否在 php.ini 文件中启用了扩展?您的扩展文件夹是否包含必要的扩展?你在运行什么样的 PHP 环境(Xampp、loacl apache、LAMP server...)?
  • 我尝试启用它,但我不太明白我该怎么做。您能解释一下我必须启用什么以及如何包含扩展程序吗?我单独安装了 LAMP 服务器。感谢您的快速响应
  • 我遇到了这个问题,因为 PHP docs 误导性地说“此扩展与 PHP 5 及更高版本捆绑在一起,并使用 --with-tidy 配置选项安装。”我相信他们。正如以下答案所暗示的那样,我必须进行 yum 安装。

标签: php tidy htmltidy php-ini


【解决方案1】:

您的 php.ini 包含“extension=somefile.so”行的列表。您缺少整洁的扩展名的正确线路。它应该包含在您的文件中,但应加以注释。只需删除 ;整齐扩展的一行前面的字符并重新启动您的网络服务器。

windows 示例:

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

Debian/Ubuntu:

apt-get install php5-tidy

【讨论】:

  • 非常感谢,但还没有任何效果。然后,我尝试简单地将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 我有一个错误
  • 不要更改扩展文件夹。您使用的是什么发行版?启用 so 时是否出现任何启动错误?
  • 应该是:yum install rh-php56-php-tidy.x86_64
  • @DylanB 已更新。
【解决方案2】:

我遇到了同样的问题,我终于弄明白了,这个解决方案适用于运行 xampp 的 ubuntu 14.04。

步骤 1
打开终端并输入以下内容

sudo apt-get install php5-tidy

第 2 步
是时候找出“tidy.so”的安装位置了。


对我来说,它安装到“/usr/lib/php5/20121212/tidy.so”

第三步

找到并打开您的 php.ini 文件并找到扩展部分并插入以下行

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

第四步

返回您的终端并运行以下命令以重新启动您的服务器。

sudo /opt/lampp/lampp restart

第 5 步

验证新的 tidy 模块是否已被任一

在终端中

php -m

和/或通过在名为 test.php 的 htdocs 中的服务器上创建一个文件并插入以下代码

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

接下来在浏览器中运行 test.php 文件,它应该显示为“LOADED”

如果不返回并查看之前的步骤,直到您收到该消息。

我希望这会有所帮助,:)

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 2015-03-20
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2013-09-27
    • 2013-08-16
    • 2016-08-21
    相关资源
    最近更新 更多