• ベストアンサー

引用

プログラム初心者です シンプルな掲示板を作りました 引用の自動リンクを設置する方法を教えてください 例えば さっきの回答>>10ありがとう とユーザーが記入したら さっきの回答<a href="bbs.php?id=10">&gt;&gt;10</a>ありがとう と置換える感じです よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

普通にこんな感じでよいのでは? <?PHP $str="さっきの回答>>10ありがとう"; $pattern="/>>(\d+)/"; $replacement="<a href=\"bbs.php?id=$1\">&gt;&gt;$1</a>"; $str=preg_replace($pattern,$replacement,$str); print $str."<br>\n"; print htmlspecialchars($str); ?>

flash0
質問者

お礼

回答ありがとうございます これなら自分でも使えそうです。ありがとうございます

その他の回答 (2)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

ひとつひとつやっていけばそんなに難しくないですよ。 1. 本文から>>を探し、引用文字範囲を特定 2. >>につづく数字を調査 全角文字で入力される可能性も考慮して。 3. 1.で得た引用範囲にある文字列と、2.で得た数字を利用してリンクをつくる 具体的には、1.の文字列をリンクに置き換える感じですね。 全部分からないではなくて、やれるところまでやって、分からないところだけを質問したほうが、より前に進むと思いますよ。

flash0
質問者

お礼

回答ありがとうございます なんとかできました

noname#244856
noname#244856
回答No.1

どうせならついでに一般的なURLも自動リンクしちゃいましょう。 URLの正規表現 http://qiita.com/mpyw/items/1e422848030fcde0f29a ↑をちょっと書き換えて、引用の自動リンクにも対応させた例がこちら http://ideone.com/CMogL8

flash0
質問者

お礼

回答ありがとうございます 完璧なコードだとは思うのですが、貧弱レンタルサーバー使っているので、負荷が気になります

関連するQ&A