Простой текст рушит разметку html. Помогите , умные люди...

Forever

Новичок
Наконец написал свой первый сайт в жизни, перенес его с локального хоста в интернет, на хостинг Fozzy. Всплыла куча сюрпризов, сейчас разбираю самый неприятный. В моем скрипте есть переменная, которая содержит текст из БД.

Грубо говоря, она может выглядеть так:
Код:
$chapter =  ' Carry - герои, которые «принесут» команде победу. Их потенциал зависит от собранных предметов. Как правило, в начале игры они очень слабы и поэтому должны быть защищены героями, способными гораздо успешнее драться в начале игры, но позднее становятся весьма могущественны. Для раскрытия всех своих возможностей они должны умело пользоваться способностями. Наличие большого количества таких персонажей в команде может усложнить игру, т.к. каждый игрок будет стараться получить опыт или лишнее золото, что, конечно, замедлит получение опыта и золота другим игрокам Carry - герои, которые «принесут» команде победу. Их потенциал зависит от собранных предметов... ';
далее эта переменная помещается в самый конец переменной $view (простите за страшные приемы программирования и разметки ):
Код:
$view = '
    <input type = "hidden" id = "guide_id" value = "'.$guide_id.'">
 
    <div  class = "main"  >
      <div id = "heroes" class = "hide">
    </div>
  
      <div id = "redactor_core"  >
  
        <div class = "sub_nav" >
          <div class = "sn_sel" >
            <a href = "/guide/edit/'.$guide_id.'" >РЕДАКТИРОВАНИЕ</a>
          </div>
          <div class = "sn_not_sel" >
            <a target = "_blank" href = "/guide/preview/'.$guide_id.'" >ПРЕДПРОСМОТР</a>
          </div>
       </div>
  
       <div class = "guide_actions">
         <div class = "save_action">
           <input type = "button"  value = "Сохранить изменения", class = "save button">
         </div>
    
        <div class = "publish_action" >
          <input type = "button" class = "'.$p_button_class.' button" value = "'.$p_button_val.'"
          data-guide_id = "'.$guide_id.'">
        </div>
    
        <div class = "delete_action" >
          <input type = "button" class = "'.$d_button_class.' button" value = "'.$d_button_val.'"
           data-guide_id = "'.$guide_id.'">
        </div>
 
       </div>
        <div class = "del_time" >
          <span>'.$del_time.'</span>
        </div>

    <div class="b_redactor ">
      <div  id = "guide_name">
        Название гайда: <input type = "text"  id = "guide_name_input" value = "'.$guide_name.'">
     </div>
  
      <div  id = "hero">
       <div class = "hero_info">
          <div>Герой: <a target = "_blank" href = "/heroes/view/'.str_replace(' ', '_', $hero[0]['name']).'">'.$hero[0]['name'].'</a> </div>
          <span id = "hero_id" data-id = "'.$hero[0]['id'].'" ></span>
          <div>
           <img class = "hero_tooltip" data-id = "'.$hero[0]['id'].'" src = "/images/heroes/66x66/'.str_replace(' ', '_', $hero[0]['name']).'.png">
          </div>
        </div>
      </div>
  
      <div class="bs">
  
        <div class="bs_content">
          <div class="bs_nav">
            '.$b_links.'</div>
          <div class="bs_add"><img src = "/images/interface/add.png"> Добавить</div>
        </div>
      </div>
      <div class="b_list ">
        '.$builds.'
      </div>
    
        <div class = "text"> //РАЗМЕТКА ПРОПАДАЕТ, НАЧИНАЯ  ОТСЮДА
          <div class = "static_insert_chapter s_head">
            <div><img src = "/images/interface/insert_chapter.png"> <span >Создать главу</span></div>
          </div>
  
          <div class = "chapters">
            '.$chapters.'  //ВОТ СЮДА !
          </div>
        </div>
     </div>
 
    '.$tmp.'
 
    </div>
  </div>
    <input type = "hidden" id = "token"  maxlength="32" value = "'.$_SESSION['CSRF_token'].'" />
    <script type="text/javascript" src="/modules/guide/edit/js/edit.js"></script>';
Так вот. если переменная $chapters содержит определенный текст, например такой, как указан выше, то на странице пропадает разметка html , начиная с DIV class = "text" и с этого момента в исходном коде вообще ничего нет.

Еще иногда выводится не весь текст, а какая то его часть и дальнейший обрыв разметки.

А если переменная содержит какой-то текст попроще, например "aaaaa, bbbbb - ccccc !" . то все нормально, ничего не обрывается. Я уже все прогонял через htmlentities,думал какие то злые символы замешаны, но нет.

Еще несколько странных моментов:
1) Если написать так
Код:
  <div class = "chapters">
            '.$chapters.'
            '.$chapters.'
   </div>
, то выведется весь текст первой переменной, и небольшая часть текста второй.

Через echo переменная выводится в любой точке кода после своего объявления

Если ее приклеить даже в самое начало переменной $view , то html обрывается все равно после DIV class = "text".

В общем, я совсем ничего не понимаю, так ведь не бывает. Подскажите, как решить эту проблему, сил имоих больше нет, пол-дня сижу.
 
Последнее редактирование:

ksnk

прохожий
Отлаживать надо. Первое подозрение - в $chapters содержаться незакрытые или некорректные html теги. Можно попробовать вставлять вот так
PHP:
...
'.htmlspecialchars($chapters).'
...
Тогда всякие странности разметки, если они попадают в текст, будут видны.
 

Forever

Новичок
Отлаживать надо. Первое подозрение - в $chapters содержаться незакрытые или некорректные html теги. Можно попробовать вставлять вот так
PHP:
...
'.htmlspecialchars($chapters).'
...
Тогда всякие странности разметки, если они попадают в текст, будут видны.
Да, пробовал, но не помогло.

На момент написания вопроса домен сайта еще не был делегирован, и я обращался к нему через plesk-preview по ip адресу. А сегодня произошло делегирование и теперь, в интернете все работает снова нормально. Что за хрень... Я уже на это день потратил @#$%
 
Сверху