我想设置 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