使星号之间的文字变为粗体

时间:2017-05-11 01:22:02

标签: php json ajax

我想在聊天中进行正则表达式调用,使单个星号之间的文字粗体

类似的东西:测试! * Hello这是一个PHP脚本 *

谁能帮助我?我已经为聊天室发布了PHP脚本的一些过程,但是正则表达式没有显示出来。

(*)+([^。*?$] +)+(*)是我为此假设的正则表达式。我已经把你所在的部分包括在内了#34;发送"聊天,添加到聊天室并显示。

我在这里做错了什么?我已经坐了几个小时试图解决这个问题。感谢。

  case('send'):
      $message = htmlentities(strip_tags($_POST['message']));
      $nickname = htmlentities(strip_tags($_POST['username']));

          $text = "/(\*)+([^.*?$]+)+(\*)";
      $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
      $avc = htmlentities(strip_tags($_POST['avatarC']));
      $rbc = htmlentities(strip_tags($_POST['robeC']));




    $message = str_replace("\n", "", $message);

      if(($message) != "")
      {
          $temp_msg = "";
          if(strlen($message)>75)
          {
              $temp_msg = wordwrap($message, 75, "<br />");

          }
          else
          {
            $temp_msg = $message;


          }




        /*if(preg_match($reg_exUrl, $avc, $url)) {
          $avc = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank">'.$url[0].'</a>', $avc);
        }
        $avc = str_replace("\n", " ", $avc);*/


        $current_date = date('H:i:s');

        //fwrite(fopen($file, 'a'), "<div class=\"message_container message_cell\"><img class=\"img_message\" src=$avc></img><img class=\"img_message\" src=$rbc></img><span class=\"message_text\"><span class=\"message_user\">"<b>. $nickname ."</b>  ".$current_date."</span>". $message ."</span></div><br />\n");
        fwrite(fopen($file, 'a'), "<div class=\"message_container message_cell\"><img class=\"img_message\" src=$avc></img><img class=\"img_message\" src=$rbc></img><span class=\"message_text\"><span class=\"message_user\"><b>" . $nickname ."</b>  [".$current_date."]:</span><br /><br/>". $temp_msg ."</span></div><br />\n");
      }
      break;

  case('addToChat'):
  $lines = file($file);
  $fristCount = count($lines);
  $nickname = $_POST['username'];
  fwrite(fopen($file, 'a'), "<div class=\"message_cell message_container\">".$nickname."</div><div>\n");

  $text = array();
  $lines = file($file);



  $log['file'] = $file;


  foreach ($lines as $line_num => $line) {
    $line = str_replace("\n", "", $line);
    if($line != ""){
      $text[] = $line;
    }
  }

1 个答案:

答案 0 :(得分:0)

如果您在聊天中的消息将具有此类型的单一模式,则下面的脚本将起作用:

<?php
$message="Test! * Hello This is a PHP script * and this another one";
$pattern = "/(?<=\*).+?(?=\*)/";
preg_match($pattern, $message,$matches);    
$temp_msg=$message;
for($i=0;$i<count($matches);$i++){    
    $temp_msg=str_replace($matches[$i],"<b>".$matches[$i]."</b>",$message);       
}
$temp_msg=str_replace("*","",$temp_msg);
echo $temp_msg;
?>