У меня есть функция на моем 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 вывод сейчас:
Джон \ tabAsus GTX 1060 \ tabIntel I7 {\ pard \ par} Майк \ tabAsus GTX 1080 \ tabAMD FX 8120 {\ pard \ par}
Выход RTF должен быть:
John Asus GTX 1060 Intel I7
Майк Asus GTX 1080 AMD FX 8120
Кто-нибудь, кто может мне в этом помочь?
@IgorIlic Спасибо за ответ! \ t сработало для вкладок, большое вам спасибо! pard вещь была тем ответом, о котором я связал. Вы также знаете, как добавить разрыв строки? \ n не сработало
Можете ли вы попробовать \ r \ n или <br/> для разрыва строки?






Вы пробовали использовать только \ t вместо \ tab, а что такое \ pard? И они должны быть внутри "(двойные кавычки), чтобы работать.