将 tidy-html5 与 PHP 捆绑在一起?

将 tidy-html5 与 PHP 捆绑在一起?

我想设置 HTMLTidy 的 W3C 分支(tidy-html5) 作为 PHP 扩展。

我已经使用该包安装了常规的 php/tidy 扩展php5-tidy

然后我下载了 Git 存储库,并运行以下命令来编译共享库:

sh build/gnuauto/setup.sh && ./configure && make
sudo make install

重新启动 php5-fpm 服务后,我仍然看到相同的整洁信息phpinfo()

libTidy Release    25 March 2009
Extension Version  2.0 ($Id$)

tidy-html5此时PHP 扩展不应该开始使用吗?我该怎么做才能让它工作?

答案1

以下是我在 PHP 中使用 Tidy 的一个示例:

$command = "tidy -indent -utf8 -xml -wrap 1000 data/cache/tidy-in.xml > data/cache/tidy-out.xml";
exec($command, $return, $code);
if ($code != 0) {
    throw new Exception(printf("Something went wrong: %s (%s)", join('<br />', $return), $code));
}
// the fixed version is here:
$html5 = file_get_contents('data/cache/tidy-out.xml');

和:

$command = "tidy -version";
exec($command, $return, $code);
if (count($return) > 0) {
    // command line tidy available
}

您可以测试是否有可用的命令行整洁版。以前 Github 的 HTML5 兼容版本在版本文本中含有 HTML5,现在它只显示“适用于 Linux 的 HTML Tidy 版本 4.9.18”,但我认为这已经足够了(例如,如果您想区分 HTML5 兼容版和基本整洁版)。

另外一个选择:

if (extension_loaded("tidy")) {
    // the non-HTML5 php extension... maybe it serves you as fallback..
}

答案2

据我所知,tidy-html5 不是 php 模块,因此您不能直接在 php 中使用它。它只是一个命令行工具和/或共享库。您可以尝试使用新的共享库构建 php

# configure ...
--with-tidy=shared,/usr/local/tidy-html5

答案3

不幸的是,我不是 ubuntu/debian 专家(我看到你用过 apt)。在基于 RHEL 的系统上,我只需下载并安装http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/SRPMS/php53u-5.3.26-2.ius.el6.src.rpm,编辑/root/rpmbuidl/SPESC/php53u.spec并重建rpm包

# rpmbuild -ba --target=x86_64 php53u.spec

据我所知,在 Debian 上你也可以重建软件包。例如

$ sudo apt-get install devscripts build-essential fakeroot
$ apt-get source libapache2-mod-php5 php5-tidy
$ sudo apt-get build-dep libapache2-mod-php5
$ debuild -us -uc

相关内容