指定したページの本文を指定した文字数だけ引用する

バージョン1.4
投稿者R34$0n.?
状態提案
投稿日2003-10-25 (SAT) 17:56:35

メッセージ

ニュースをかきたいのですが、簡単にニュースのindexページを更新するために

ページタイトルは、#ls2で抜き出せば良いのですが

本文から抜き出して表示されるプラグインは探したのですが見つかりません。

どなたか作っていただけませんでしょうか。

(もし既存しているのならどのようなプラグインか教えてください。)

コメント

  • upk 2003-10-25 (SAT) 21:03:36

    ダブルバイトを正しく判定して、その文字数をとることは、phpのバージョンに依存すると思います。なので、バイト数は簡単でも、指定文字数をとる。というのは、難儀かなぁ。

  • R34$0n.? 2003-10-26 (SUN) 19:54:56

    なるほど。では文字数ではなくバイト数で抜き出したら、本文を引用すると言うのは可能ですか?

  • reimy 2003-10-26 (SUN) 22:15:12

    euc-jpやshift_jisの場合は全角と半角が2:1になるのでバイト数でも問題ないですね。utf-8の場合、3:1となるので同じバイト数でも全角文字が入ってると表示文字数がかなり短くなります。

  • sha 2003-10-26 (SUN) 22:44:42

    本文を引用するプラグインを作ることは可能だと思いますが、適当なバイト数で切断するとその文字以降が化け化けになる可能性があります。それを防ぐために、切断部分の非文字をカットする処理を入れるか先頭から文字の並びだけを拾い出す必要があります。それは漢字コードに依存する処理なので結構手間だったり全く美しくなかったりするのです。このプラグインを作るかどうかは、その処理を自分で実装する元気があるかどうかにかかってるかと思います。

  • upk 2003-10-26 (SUN) 22:59:56

    TrackBackの一覧を表示する際に、実はこのあたりを端折って実装したんでした。仕様上は、確か1024 255バイトを超過した場合は、...と表記だったと思うのですが、ライン読みして長さを足して、超過するまで処理を行うということで逃げました。入力した人にディペンドするわけです。この程度のものであれば、簡単に実装できると思いますが、文字数とかになると、shaさんが指摘されているように、切り方を間違えると、文字化けしちゃう。ということになります。

  • sha 2003-10-27 (MON) 00:34:17

    あとは、指定したページの最初が表組だったり、プラグインだったりしたらどうするか?表組の途中で切断しちゃったら?など、きっといろいろ考えて決めないといけませんよね。仕様決定にいろいろ自由度がありそうですし。また、文字数指定の場合でもプラグインを切断するわけに行きませんが、upkさんの実装方法だとその心配はなさそうですね。

    • masao? 2003-10-27 (MON) 21:57:41

      単に文字数分とってくるなら、PHP関数:mb_substrでよいのでは?本体でも使ってますし。 それとも、何か問題があるんでしょうか?

    • sha 2003-10-27 (MON) 23:15:27

      なるほど、便利な関数があったんですね。それだと漢字対応は大丈夫そうですね。ただし、上では、それ以外の問題点の一部を挙げておいたのですが。

  • upk 2003-10-27 (MON) 00:55:43

    オリジナル文書をそのまま扱うので、表組みならパイプの文字で囲まれたまま。というものにしかなりません。テキストとして欲しいはずですから、convert_htmlしちゃうと、オリジナルよりも汚くなると思います。strip_wiki みたいな関数でも作れば、綺麗になるのかなぁ?

  • merlin 2003-10-28 (TUE) 15:32:00

    とりあえず、汚くなってもかまわないので取り出す関数を実装する。それとは別に 何もしない 「サマリー部を表す」インラインプラグインを作って*1 それで囲まれた所を取り出す関数も作る。で、サマリー部指定があるときにはそちらを取り出し、そうでないときは規定文字数を取り出すようにするのではどうでしょう?

  • ニュースのindexページということなら引用条件を文字数でなく行数で妥協して、自作プラグイン/include2.inc.phpを使うのもありかも。 -- 2004-12-03 (金) 18:08:45


*1 &summary(0), &summary(1) みたいなの

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-03-09 (水) 17:28:06
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u4. HTML convert time: 12.790 sec.

OSDN