HTMLタグ直後の改行を禁止したい
質問
記事内で改行すると <br> が挿入されますが、HTML タグ直後の改行時には <br> を挿入しないようにしたい。
例えば記事内に表(table)を記述します。
分かりやすいように <tr>~</tr> ごとに改行を入れて書きます。
<table>
<tr><th>ペット</th><th>平均寿命</th></tr>
<tr><td>犬</td><td>12~15歳</td></tr>
<tr><td>猫</td><td>14~17歳</td></tr>
<tr><td>熱帯魚</td><td>数年</td></tr>
</table>
するとブログのソースには行ごとに <br> が挿入されます。
<table><br>
<tr><th>ペット</th><th>平均寿命</th></tr><br>
<tr><td>犬</td><td>12~15歳</td></tr><br>
<tr><td>猫</td><td>14~17歳</td></tr><br>
<tr><td>熱帯魚</td><td>数年</td></tr><br>
</table>
<table>~</table> 内に <br> が5つある事で、表のあとに変な改行が出来てしまいます。
<br> が挿入されないようにするには、下記のように改行せずに書き込む手もありますが、とても読みにくく後で編集するのも大変です。
<table><tr><th>ペット</th><th>平均寿命</th></tr><tr><td>犬</td><td>12~15歳</td></tr><tr><td>猫</td><td>14~17歳</td></tr><tr><td>熱帯魚</td><td>数年</td></tr></table>
回答
「common.php」に1行書き加えるだけで、HTML タグ直後の改行を抑制する事が出来ます。
通常の改行では今まで通り <br> が挿入されます。
「common.php」の150行目あたり(BlognPlus v2.3.2 の場合)に赤文字部分を追加
$size = @getimagesize($icon_file);
$icon_name = preg_replace("/[:([wW]+?):]/", "", $icon_key);
$str = str_replace($icon_key, '<img src="'.$icon_file.'" '.$size[3].' alt="'.$icon_name.'">', $str);
}
}
$str = preg_replace("/([^/])><br(s/)*>/i", ">", $str);
return $str;
}
| よく聞かれる質問::○○したい | 2006-11-05 | comments (9) | trackback (0) |
評価
この記事の平均評価: (3人)
記事を評価してください(★1つ=悪い、★5つ=良い)
コメント
この件については調査しますが、「common.php」を改造した事でログインに不具合が起きるとはちょっと思えません。
この改造とは別の箇所が悪さをしているという事はありませんか?
| CJ | URL | 2007-05-07 08:10 PM | dtJ91Vfg |
ご指摘のとおりだとは思うのですが、2.4.1からの上書きバージョンアップファイルにあるcommon.phpファイルを改造したものからオリジナルに戻すとログイン出来ます。
正確には2.3.xを使っていたときは改行処理の変更を加えても問題は有りませんでした。2.4.1へ変更した後は改行処理の方法が分からず(変更内容を失念)そのままにしていましたが、このページを漸く見つけてて2.4.2へのバージョンアップの折にcommon.phpを改造したしだいです。
PHPについてはまるで素人なので途方にくれています。
| mso | URL | 2007-05-08 12:53 AM | EDHpksac |
とりあえず解決しました。
編集したcommon.phpを保存する際UTF−8を指定していますがBOMコードが先頭に挿入されていました。これを取り除いたところ正常に動作するようになりました。
BOM付だとおかしくなる理由は分かりません。Blogunの仕様なのでしょうね。
| mso | URL | 2007-05-10 01:04 PM | rnpz9kN. |
以前から改造していたという事なので、てっきりその辺の事は承知済みだとばかり思っていました。
うちのサイト内でも注意書きがありますし…。
http://i-njoy.net/blognplus/index.php?e=101
> BOM付だとおかしくなる理由は分かりません。Blogunの仕様なのでしょうね。
Blogn に限らず、どんな PHP スクリプトでも BOM 付きだと不具合が発生する可能性があります。
| CJ | URL | 2007-05-11 06:23 PM | dtJ91Vfg |
大変お騒がせしました。私の使用していたTerapadはバージョンが低く(0.7410)UTF-8Nには対応していませんでした。したがってUTFコードにそのような差があることは今まで知りませんでした。幸いなことにBlogunの2.3.2でいくつか変更を加えていましたがBOM付きでも動作していましたので今まで気がつかなかった次第です。
どうもありがとうございました。
| mso | URL | 2007-05-11 11:21 PM | EDHpksac |
BlognPlusのバージョン2.4.2を使っています。
赤文字部分を追加すると、テーブル内ではキレイに表示されるのですが
テーブル内以外の改行の時
例えば、<BLOCKQUOTE>〜</BLOCKQUOTE>内や
画像の後に一行開けて文章を書く時は
2回改行しないといけなくなりました。
私が注意して2回改行すればいいのですが
うっかり・・・と言う事もあり
出来れば1回改行するだけで済ませたいのです。
どうすれば良いのか分かりますか?
もし分かれば、教えて下さい。
よろしくお願いします。
| まみんちょ | URL | 2007-06-29 05:11 PM | EI8jpfPo |
viva さんのサイトの方にも似たような改造方法が掲載されています。
http://viva.dip.jp/index.php?free=module?remodeling1#kai1-08
試されてはいかがでしょうか?
| CJ | URL | 2007-06-30 05:42 PM | qr4HCxWk |
ありがとうございます。
試してみます!
| まみんちょ | URL | 2007-06-30 10:26 PM | EI8jpfPo |
トラックバック
| PAGE TOP |
バージョン2.4.2で同様に書き加えると管理画面を操作すると常にログイン画面になってしまいます。
ブログンフォーラムの質問記事
http://dp40025576.lolipop.jp/bbs/viewtopic.php?t=639
にある症状となります。
| mso | URL | 2007-05-06 09:02 PM | EDHpksac |