类别';部落字符串';在\pear\Horde\Text\Diff.php中找不到
我试图建立一个类来跟踪不同作者对内容的更改。我做了RnD,发现text_Diff是pear包,负责相同的工作。稍后,文本_diff将保留在 '' 我现在尝试运行这个示例类别';部落字符串';在\pear\Horde\Text\Diff.php中找不到,text,diff,Text,Diff,我试图建立一个类来跟踪不同作者对内容的更改。我做了RnD,发现text_Diff是pear包,负责相同的工作。稍后,文本_diff将保留在 '' 我现在尝试运行这个示例 include_once "Text/Diff.php"; include_once "Text/Diff/Renderer.php"; $from_text=file('file.html'); $to_text=file('file_edited.html'); $diff = new Horde_Text_Diff($
include_once "Text/Diff.php";
include_once "Text/Diff/Renderer.php";
$from_text=file('file.html');
$to_text=file('file_edited.html');
$diff = new Horde_Text_Diff($from_text, $to_text);
$renderer = new Horde_Text_Diff_Renderer();
echo $renderer->render($diff);
我得到的错误是“部落字符串”
我找不到课,有人知道这门课吗?。有多个引擎,如“Native”、“XDiff”、“String”和“Shell”……但我无法找到它们是什么,以及何时使用哪一个
解决此错误的任何帮助都将是巨大的帮助
谢谢我费了好几个小时才把它用上。最后,我不得不通过输入命令安装Horde_Text_Diff(安装Keelan评论中链接问题中描述的自动加载器): pear安装部落自动装弹机 pear安装部落\u文本\u差异 这将安装我认为您需要的软件包。然后,您需要通过调整以下代码来正确调用autoloader包,以匹配系统的路径
require_once 'Horde/Autoloader.php';
require_once 'Horde/Autoloader/ClassPathMapper.php';
require_once 'Horde/Autoloader/ClassPathMapper/Default.php';
$autoloader = new Horde_Autoloader();
$autoloader->addClassPathMapper( new Horde_Autoloader_ClassPathMapper_Default('/usr/share/pear') );
$autoloader->registerAutoloader();
然后,如果一切顺利,您应该能够通过执行以下操作调用并使用该类:
$check_diff = new Horde_Text_Diff( $engine = 'auto', $params = array( $from_text, $to_text ) );
$renderer = new Horde_Text_Diff_Renderer_Inline();
echo $renderer->render($check_diff);
虽然这对我来说还不完全有效,因为我发现它只比较字符串中的第一个字符。这是一个与让类正常工作无关的新问题:)以下是我的方法,它不使用囤积自动加载器:
spl_autoload_register(function ($class_name) {
if (substr($class_name, 0, strlen('Horde_')) != 'Horde_')
return false;
$file = substr($class_name, strlen('Horde_')); // omit if not needed
$file = str_replace("_", DIRECTORY_SEPARATOR, $file);
return include_once($file . '.php');
});
function diff($old, $new)
{
$td = new Horde_Text_Diff('auto', array($old, $new));
$rend = new Horde_Text_Diff_Renderer_Unified();
return $rend->render($td);
}
见此: