使用包含换行符和制表符的php字符串填充RTF占位符

时间:2018-05-18 12:26:53

标签: php line-breaks rtf spaces

我的php网站上有一个功能,用客户数据填充rtf模板。 它取代了看起来像这样的%% PLACEHOLDER %%的占位符。 现在我想用一个包含制表符和换行符的字符串替换占位符。我无法弄清楚如何做到这一点。我确实阅读了this帖子,但是anwser对我不起作用。在最终文件中,它只以纯文本显示{\ pard \ par}。

替换功能:

Exception java.lang.NoSuchMethodError: No virtual method decrementAndGet()I in class Lorg/apache/commons/lang3/mutable/MutableInt; or its super classes (declaration of 'org.apache.commons.lang3.mutable.MutableInt' appears in /system/framework/framework.jar:classes2.dex)

我使用该功能的文件:

function populate_RTF($vars, $doc_file)
{

 $replacements = array ('\\' => "\\\\",
                       '{'  => "\{",
                       '}'  => "\}");

$document = file_get_contents($doc_file);
if(!$document) {
    return false;
}

foreach($vars as $key=>$value) {
    $search = "%%".strtoupper($key)."%%";

    foreach($replacements as $orig => $replace) {
        $value = str_replace($orig, $replace, $value);
    }

    $document = str_replace($search, $value, $document);
}

return $document;
}

RTF输出现在是:
John \ tabAsus GTX 1060 \ tabIntel I7 {\ pard \ par} Mike \ tabAsus GTX 1080 \ tabAMD FX 8120 {\ pard \ par}

RTF输出应为:
约翰华硕GTX 1060英特尔I7
迈克华硕GTX 1080 AMD FX 8120

有人可以帮我解决这个问题吗?

0 个答案:

没有答案