首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类“Horde_String”在\pear\Horde\Text\Diff.php中找不到

类“Horde_String”在\pear\Horde\Text\Diff.php中找不到
EN

Stack Overflow用户
提问于 2013-05-23 13:45:08
回答 2查看 820关注 0票数 1

我正在尝试设置一个类,用于跟踪不同作者在内容中的更改。我做了RnD,发现text_Diff是pear包,负责同样的工作。稍后,text_diff被维持在

'http://pear.horde.org/

我现在试着运行这个例子

代码语言:javascript
复制
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);

我得到了错误'Horde_String‘

我找不到课,有人对这门课有什么想法吗?有多个引擎,如“本地”、"XDiff“、”字符串“和"Shell”...but,我无法找到它们是什么,当您使用哪个引擎时。

解决此错误的任何帮助都将是很大的帮助。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-08-17 04:41:52

我挣扎了好几个小时想让这件事起作用。最后,我不得不通过输入命令(安装Keelan注释中的链接问题中描述的Autoloader )来安装Horde_Text_Diff:

Horde_Autoloader pear安装Horde_Text_Diff

这是我相信你需要的包裹。然后,您需要通过调整下面的代码来正确地调用autoloader包,以匹配系统的路径。

代码语言:javascript
复制
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();

然后,如果一切顺利,您应该能够通过执行以下操作来调用和使用该类:

代码语言:javascript
复制
$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);

虽然这还不完全适用于我,因为我发现它只是比较字符串中的第一个字符。这是一个与使类工作无关的新问题:)

票数 0
EN

Stack Overflow用户

发布于 2019-01-30 23:33:19

以下是我的方法,它不使用囤积自动加载器:

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16715612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档