- ベストアンサー
引用
プログラム初心者です シンプルな掲示板を作りました 引用の自動リンクを設置する方法を教えてください 例えば さっきの回答>>10ありがとう とユーザーが記入したら さっきの回答<a href="bbs.php?id=10">>>10</a>ありがとう と置換える感じです よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
普通にこんな感じでよいのでは? <?PHP $str="さっきの回答>>10ありがとう"; $pattern="/>>(\d+)/"; $replacement="<a href=\"bbs.php?id=$1\">>>$1</a>"; $str=preg_replace($pattern,$replacement,$str); print $str."<br>\n"; print htmlspecialchars($str); ?>
その他の回答 (2)
- tracer
- ベストアンサー率41% (255/621)
ひとつひとつやっていけばそんなに難しくないですよ。 1. 本文から>>を探し、引用文字範囲を特定 2. >>につづく数字を調査 全角文字で入力される可能性も考慮して。 3. 1.で得た引用範囲にある文字列と、2.で得た数字を利用してリンクをつくる 具体的には、1.の文字列をリンクに置き換える感じですね。 全部分からないではなくて、やれるところまでやって、分からないところだけを質問したほうが、より前に進むと思いますよ。
お礼
回答ありがとうございます なんとかできました
どうせならついでに一般的なURLも自動リンクしちゃいましょう。 URLの正規表現 http://qiita.com/mpyw/items/1e422848030fcde0f29a ↑をちょっと書き換えて、引用の自動リンクにも対応させた例がこちら http://ideone.com/CMogL8
お礼
回答ありがとうございます 完璧なコードだとは思うのですが、貧弱レンタルサーバー使っているので、負荷が気になります
お礼
回答ありがとうございます これなら自分でも使えそうです。ありがとうございます