1

重複の可能性:
bbcode unparser regex help

このHTMLコードを変換したい

<div class="postQuote"> <div class="postQuoteAuthor"><a href="http://www.siteurl.com/profile.php?user=Username">Username</a> wrote...</div> quoted text</div> comment 

bbcodeに..

[QUOTE=Username] quoted text [/QUOTE] comment

bbcode の作成に関するチュートリアルは必要ありません。既にセットアップされています。テキストを新しいボードと互換性を持たせるために、一致させて置換する方法を知りたいだけです。

4

2 に答える 2

0

まあ、通常、人々は preg_replace に頼ります...しかし、私はより長い stripos() プロセスを好みます

if (($startat = stripos($html,'<div class="postQuote"'))!==false) {

  $startend = stripos($html,'</div', stripos($html,'</div', $startat)+6);

  $start_username_at = stripos($html,'<a', $startat);
  $start_username_end = stripos($html,'</a', $start_username_at);

  $start_comment_at = stripos($html,'</div', $startat)+6;
  $start_comment_end = stripos($html,'</div', $start_comment_at);

  $username = trim(strip_tags(substr($html,$start_username_at,$start_username_end-$start_username_at)));
  $comment = trim(strip_tags(substr($html,$start_comment_at,$start_username_end-$start_comment_at)));
  echo "[QUOTE=Username]".$username."[/QUOTE] ".$comment;

}
于 2012-12-02T23:33:57.800 に答える
0
$string = '<div class="postQuote"> <div class="postQuoteAuthor"><a href="http://www.siteurl.com/profile.php?user=Username">Username</a> wrote...</div> quoted text</div> comment ';

$string = preg_replace('|^<div class="postQuote".*user=([^"]+)".+</div>([^<]+)</div>(.+)$|', '[QUOTE=$1] $2 [/QUOTE] $3', $string);

echo $string; // [QUOTE=Username] quoted text [/QUOTE] comment 
于 2012-12-02T23:40:57.850 に答える