2012-03-07 2 views
0

У меня есть код I, который, хотя он работает, делает мой контент неустойчивым. Позволь мне объяснить.REGex заставляет контент выглядеть смешно (устранить код)

Я создал текст беседуя приложение для изучения PHP и т.д., и, длинный рассказ короткий, пользователь вводит сообщение, сообщение получает вход в БД и выводит его обратно на страницу в определенных областях (ниже)

это как страница получает свое содержание (в общем, поэтому я не заполнить страницу с кодом)

while($row = mysqli_fetch_array($dbqDoIt4_mssgs)){ 
      $i++; 

      //====== TURN REGULAR LINKS TO CLICKY LINKS USING REGEXP. 

$URL = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; 
$text = $row['mssg']; 
// Check if there is a url in the text 
if(preg_match($reg_exUrl, $text, $url)) { 

     // make the urls hyper links 
     echo preg_replace($reg_exUrl, "<a href='{$url[0]}'>{$url[0]}</a> ", $text); 

} 

//======= 


      echo '<div class="holdChat"> 
         <span class="orangeBigger">' . strtoupper($row['user']). '</span>' . ' ' . '<span class="txtSaid">said:</span> ' . '<span style="color:#171717;">' . $text . '</span>' . '</div>' . 
      '<div class="chatTimeBox">' . $row['time'] . '</div><br/>'; 

       if($i == 20){ 
        break; 
       } 
      } 

по сути, это становится все содержание ДО 20 и перерывов и т.д ...

так с выше в ОДНОЙ строке, вы получаете USER-NAME SAID: " --message here --, который появляется в сером-ише div.

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

это код, я пошел с (с помощью других)

//====== TURN REGULAR LINKS TO CLICKY LINKS USING REGEXP. 

$URL = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; 
$text = $row['mssg']; 
// Check if there is a url in the text 
if(preg_match($reg_exUrl, $text, $url)) { 

     // make the urls hyper links 
     echo preg_replace($reg_exUrl, "<a href='{$url[0]}'>{$url[0]}</a> ", $text); 

} 

//======= 

Проблемы В настоящее время я имею что когда связь написана в посте, он повторяет содержание письменного ... или, скорее, он появляется дважды на странице. если сообщение не имеет ссылок, оно выглядит как должно.

так, например, без ссылки в тексте появляется как этот USER-NAME SAID: " --message here --

с любых ссылок по тексту, я получаю двойной пост один поверх других, как этот

USER-NAME SAID: " --message here -- 

USER-NAME SAID: " --message here -- 

, который отбрасывает все.

Я нахожусь на своем умственном конце ... мой умник умения перестал там lol. Любые советы/помощь/объяснения и т. Д., С радостью принимаю.

ответ

2

Похоже, что это echo ing прямо на момент времени preg_replaces, вместо сохранения его echo ed later. Попробуйте изменить:

echo preg_replace($reg_exUrl, "<a href='{$url[0]}'>{$url[0]}</a> ", $text); 

To:

$text = preg_replace($reg_exUrl, "<a href='{$url[0]}'>{$url[0]}</a> ", $text); 
+0

прибил его прямо на голову! Спасибо. – somdow

Смежные вопросы