Буферизация вывода PHP с файлом шаблона приводит к разрывам строк и пустым абзацам

Я использую ob_start () и т. Д. Для буферизации некоторого вывода при включении файла шаблона php с кодом HTML. Вот пример файла шаблона:

<div class="prefix-box__thumb">
<a class="prefix-box__image-link"href="<?php echo $this->get_product_url(); ?>" title="<?php echo $this->get_product_link_title(); ?>" rel="nofollow" target="_blank">
<img class="prefix-box__image" src="<?php echo $this->get_product_image(); ?>" alt="<?php echo $this->get_product_image_alt(); ?>" />
</a>

<?php if ( $this->get_product_rating() ) { ?>
<div class="prefix-box__rating">
<?php echo $this->get_product_star_rating(); ?>

<?php if ( $this->get_product_reviews() ) { ?>
<div class="prefix-box__reviews"><?php echo $this->get_product_reviews(); ?></div>
<?php } ?>
</div>
<?php } ?>
</div>

Как вы можете видеть, я выделил строки, чтобы сделать их более читабельными для меня как разработчика.

К сожалению, на некоторых веб-сайтах (не на моих серверах, поэтому я не могу воспроизвести его) эти отступы приводят к разрывам строк и пустым абзацам при возврате или, скорее, печати результата ob_get_clean.

В качестве примера для сломанного результата:

<a class="prefix-box__image-link" <br="" ... >...</a>

or

<p> </p>

Для разрывов строк я думал об использовании $str = str_replace(array("\r", "\n"), '', $str); но я не уверен, что это подойдет, потому что — как я писал выше — я не могу воспроизвести неправильный вывод самостоятельно.

-1

Решение

Я попробовал строку, о которой упоминал выше, и, к счастью, это решает проблему и удалил разрывы строк из буферизованного вывода:

$str = str_replace(array("\r", "\n"), '', $str);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]