10月23日更新分:

これで囲みます→nl2br( ... )
現在:<?php echo $row_rsAmazonz2['topic']; ?>
変更後:<?php echo nl2br($row_rsAmazonz2['topic']); ?>
view.php 82行目くらい
admin.php 240行目くらい
del.php 120行目くらい
以上です。
preもCSSもすべて消してください… >┼○ バタッ

一応引用 6-5 190ページ
改行と改行タグを関連付けるPHP関数に、nl2br関数があります。
この関数を使うと、指定された文字列中の改行を改行タグに変換します。
この作業は次のファイルに対して行います。
view.php
admin.php
del.php

改行が反映されない原因は、入力した改行と改行タグが異なるためです。
テキスト領域から入力する改行はWindowsの例では改行文字「CRLF」であり、ブラウザに表示するときの改行は改行タグ「<br>」です。よって、入力した改行を改行タグに変更する必要があります。

<?php echo $row_rsAmazonz2['topic']; ?>

$row_rsAmazonz2['topic']としてそのまま表示されているtopicフィールドが改行を反映するように、ステップ1ではnl2br関数を使ってtopicフィールドの値を変換するように変更します。
ステップ2、ステップ3は前節の最終更新時刻の書式設定と同様に、処理をユーザ定義関数として定義してPHPから呼び出すための修正を行います。


以下無かった事に。

自動改行
topic(記事本文)内の自動改行についてです。
タグは普通に使えるので、brタグでも改行できますが、エンターでの改行が無視されています。

そこで、admin.phpとview.phpの2ファイルに、以下を追加します。
(1)CSS追加
pre {
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
word-wrap: break-word;
}

(一応)CSSなので場所は、<!--の下です。
<html>
<head>
<meta http-e(略
<title>ログ表示</title>
<style type="text/css">
<!--
pre { ... ...

(2)preタグ追加
レイアウトテーブルの{rsAmazonz2.topic}にpreタグを追加します。
<td><span class="style3"><pre><?php echo $row_rsAmazonz2['topic']; ?></pre></span></td>

以上により、ログ表示画面で自動改行が反映されます。
問題点として、CSSで外見を無理やり変えているだけなので、参考先のblogにもあるとおりレイアウトに問題が起こるかもしれません。

(一般的にはJavaScriptで自動改行しているようですが、うまく行かなかったので。

正規表現で切り替える?
[参考:http://m035.blog61.fc2.com/blog-entry-4.html]

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2006年10月23日 23:38