朝顔日記

Re: 与えられたURLをどう扱うか

2005-02-10

続・rNote の微改造とか にたいして 与えられたURLをどう扱うか - 徒書 にてまたまた北村さんに反応していただきました。理解の悪いヤツですみません。

なるほど、ようやく理解しました。私の方法では、& という文字列を含む URI を扱うことができなくなってしまうわけですね。

しかし、困りました。というのは、件の微改造(何)を施した GetContentsEach 関数ではツッコミやトラックバックの記事概要内の実体参照も処理しているので、北村さんの言われるように、$a = preg_replace("/&/","&",$a); だけにしてしまうと、コメント内のテキストで面白くない結果になってしまうのです。やはり、もう少し rnote.php をよく読んで改造する必要がありそうです。

とりあえず、後ろ向きですが微改造はそのままにしておいて、またリンク元を非表示にしておきます。ツッコミ欄にて "&" みたいな表示をするよりは、"&" と表示されたほうがいいと思うので。

「Re: 与えられたURLをどう扱うか」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事へのツッコミ

1: 北村 (2005-02-11T17:30:25+09:00)
たびたび失礼します。
rnote.phpを見たところ、リンク元一覧は WriteBack_Ref という関数から出力されているようなので、そこだけを改造すれば、コメント・トラックバックには影響しないかと思います。

具体的には、rnote.phpの1083行目辺りの
list($site,$count) = explode("\t",str_replace("\n","",$ref_data[$i]));
の次の行に、
$site = htmlspecialchars($site);
とか入れておけば、「リンク元URLの&が単独で出現する問題」「リンク元URLがサニタイズされていない問題」の両方への対処になりそうです。
2: のり (2005-02-12T15:37:36+09:00) nori@noasobi.net
毎度ご教授ありがとうございます。
さっそく別のテストサイトで試してみたところ、コメントの表示もリンク元 URL の表示も大丈夫なようです。ただ、どうもリンク元のカウントがおかしくなるようです。もっとも、http://rinn.e-site.jp/bbs/20050126221451.htm によれば、rnote 本体のリンク元の記録にバグがあるのを、作者のりんさんも把握しておられるようなので、そこらは次のバージョンアップを待ちたいと思います。
ということで、次回更新時にリンク元は表示、カウント数は非表示にしてみようかと思っています。
3: りん (2005-02-14T13:04:06+09:00)
いや、申し訳ありませんですー
この件は気が付いてまして、autolink と WriteBack_Ref に関しては早急に直さないといけないなぁと思っていた所だったんですが…
何分にも最近全然時間が無くて。あう
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2005/02/diary_050210b.html