掲示板の返信機能を作成中です。
コメントの右下にある「返信」ボタンを押すと、「>>56」のように>>と返信先のコメント番号が自動的にテキストエリアに入力される仕組みです。
そしてコメント上での「>>56」の部分は
html
1<a href="#56"> >>56 </a>
という表示にし、クリックすると該当のコメントにとぶようにしたいと考えております。
phpのpreg_replace関数を利用し、以下のようなコードを作成しました。
php
1$pattern = '/(>>([0-9]+))/'; 2$replace = '<a href="#$2">$1</a>'; 3$test = preg_replace($str, $replace, '>>56あああ'); 4print $test;
その結果「>>56」の部分のみリンクで表示されました。
しかし、これを以下のようにデータベースから取ってきた値にかけると、リンクが生成されません。
php
1$items = count($rows);//$rowsがデータベースから取ってきた配列 2$pattern = '/(>>([0-9]+))/'; 3$replace = '<a href="#$2">$1</a>'; 4for($i=0; $i<$items; $i++) { 5$str = $rows[$i]['content'];//['content']にコメントの中身が入っています 6$link = preg_replace($pattern, $replace, $str); 7$rows[$i]['content'] = $link; 8}
この処理の結果、リンクのない元の値が表示されます。
ループの途中で
php
1print $str;
と出力をしてみましたが
「>>50
ありがとうございます。」
のような値が出力されました。
どなたかお力をお貸しください。
回答1件
あなたの回答
tips
プレビュー