Заполните заполнитель RTF строкой php, которая содержит разрывы строк и вкладки - PullRequest
0 голосов
/ 18 мая 2018

У меня есть функция на моем php-сайте, которая заполняет шаблоны rtf данными клиентов.Он заменяет заполнители, которые выглядят так: %% PLACEHOLDER %%.Теперь я хочу заменить заполнитель строкой, содержащей вкладки и разрывы строк.Я не могу понять, как это сделать.Я прочитал этот пост, но у меня не работает ответ.В конечном файле он просто отображает {\ pard \ par} в виде обычного текста.

Функция замены:

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;
}

Файл, в котором я использую функцию:

function MakeString()
{
    foreach(/*for each here*/)
    {
        $string = $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
        $string .= $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
        $string .= $name. "\tab" . $gpu . "\tab" . $cpu . "{\pard\par}";
    }
    return $string;
}


$vars = array
(
    'name' =>                    $info['name'],
    'address' =>                 $info['address'],
    'phone' =>                   $info['phone'],
    'string-here' =>             MakeString(),
);


$new_rtf = populate_RTF($vars, $template);
$fr = fopen($saveLocation.$filename, 'w') ;
fwrite($fr, $new_rtf);
fclose($fr);

Вывод RTF теперь:
John \ tabAsus GTX 1060 \ tabIntel I7 {\ pard \ par} Mike \ tabAsus GTX 1080 \ tabAMD FX 8120 {\ pard \ par}

Вывод RTF должен быть:
Джон Асус GTX 1060 Intel I7
Майк Асус GTX 1080 AMD FX 8120

Кто-нибудь, кто может мне помочь с этим?

...