Не могу сделать перенос строки

kirpich

Всем привет. Никак не получается сделать перенос строки…

Имеется код для инжекта в HTML-страницу:

PHP:
  1. foreach($this->url as $media => $url) {
  2. $url = $this->url_replace_cdn($url);
  3.  
  4. //Add the stylesheet either deferred (import at bottom) or normal links in head
  5. if($this->defer == true) {
  6. $preloadCssBlock .= ‘<link rel=»preload» as=»style» media=»‘.$media.‘» href=»‘.$url.‘» onload=»this.rel=’stylesheet'» />’;
  7. $noScriptCssBlock .= ‘<link type=»text/css» media=»‘.$media.‘» href=»‘.$url.‘» rel=»stylesheet» />’;
  8. } else {
  9. if (strlen($this->csscode[$media]) > $this->cssinlinesize) {
  10. $this->inject_in_html(‘<link type=»text/css» media=»‘.$media.‘» href=»‘.$url.‘» rel=»stylesheet» />’,$replaceTag);
  11. } else if (strlen($this->csscode[$media])>0) {
  12. $this->inject_in_html(‘<style media=»‘.$media.‘»>’.$this->csscode[$media].‘</style>’,$replaceTag);
  13. }
  14. }
  15. }

Сейчас строки выводят в HTML код в одну строку и выходит:

HTML:
  1. <link type=«text/css» media=«all» href=«site.dom/style.css» rel=«stylesheet» /><title>Тайтл сайта</title>

А хотелось бы видеть в исходном коде (через пустую строку):

HTML:
  1. <link type=«text/css» media=«all» href=«site.dom/style.css» rel=«stylesheet» />
  2.  
  3. <title>Тайтл сайта</title>

Я пытался в строках, которые ниже, сделать n и PHP_EOL — не помогает :)
Вариант с <br /> не катит, т.к. эти теги стоят в HEAD-секции.

PHP:
  1. $this->inject_in_html(‘<link type=»text/css» media=»‘.$media.‘» href=»‘.$url.‘» rel=»stylesheet» />’,$replaceTag);
  2. ___
  3. $this->inject_in_html(‘<style media=»‘.$media.‘»>’.$this->csscode[$media].‘</style>’,$replaceTag);
 

Drunkenmunky

Как пытались?

 

kirpich

@Drunkenmunky, например

PHP:
  1. $this->inject_in_html(‘<style media=»‘.$media.‘»>’.$this->csscode[$media].‘</style>’.«n«,$replaceTag);
 

Drunkenmunky

Что содержит тогда $replaceTag?

 

kirpich

@Drunkenmunky

PHP:
  1. $replaceTag = array(«<title»,«before»);
 

Drunkenmunky

Развивайте мысль.
Я так понимаю, вы этот массив как-то используете. Не?

 

kirpich

@Drunkenmunky, я этот массив никак не использую. Это плагин от ВП, минифицирующий CSS&JS и всовывающий нужное в HTML. Я в PHP не шарю, поэтому куда там этот массив идёт — хезе :)
Я вижу только то, что код плагина цепляется к определённому тегу (в нашем случае это title) и перед ним всовывает код. Разраб решил выбрать тег title, т.к. этот тег используется почти на 100% сайтов. Только вот разраб не сделал перенос строки, то ли забыл, то ли забил…

 

Drunkenmunky

Попробуйте тогда после символа переноса вставлять комментарий.
Возможно, перед вставкой к вставляемому применяется trim()
Например

Код (Text):
  1. ………$this->csscode[$media].'</style>’.PHP_EOL.'<!—eol—>’,$replaceTag);
 

Вероломство

бред какой-то: ровнять разметку на пыхе, чтобы она в исходном коде смотрелась красиво :)

ТС, ты когда получишь результат, то потом другой браузер возьми и там посмотри исходный код, будешь удивлён…

 

miketomlin

Вообще есть такое :) Но по идее должно легко отключаться. На наших сайтах эта хрень не используется. Если нужна «елочка» и т.п. в контенте, можно прикрутить фильтр прямо к редактору, чтобы сохранять эту «красоту» для потомков :)
— Добавлено —
Но с другой стороны в шабе логичнее это прикрутить, т.к. ближе к обрамляющей контент разметке. Т.е. чтобы общий отступ контента соответствовал отступу обрамляющего контент тега.

 

kirpich

Гляну

Ну… вариантов не оч много

 

kirpich

Да, сработало:

PHP:
  1. $this->csscode[$media].‘</style>’.PHP_EOL‘,$replaceTag);
 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *