[PHP-users 23324]改行コードの置換

Kuma satoru_kumagai @ mjs.co.jp
2004年 9月 16日 (木) 18:58:14 JST


改行コードの置換についてご教授ください.
環境
OS -> Win2000SV
Server -> Apache1.3.26
PHP -> 4.2.2
DB -> MSSQL7.0

現在,ページ読込み時にデータベース内の文字列を読込み,
その値をshowModalDialogの戻り値として返す仕組みを
考えております.

処理の流れ
1. 表示させるページ側のonLoadにてshowModalDialog(hoge.php)呼出し
2. hoge.phpで「しばらくお待ちください」を表示
3. hoge.phpのonLoadにてshowModalDialog(sv.php)を呼出し
4. sv.phpで以下の処理を実行

----------------------------------------------
DB接続部分,リソース取得部分は省略しています
ヒットしたデータを230バイト分取り出し,連結する処理
この文字列は,ページのTEXTEREA内で入力したものを
POST処理にてDBへ登録したものです
----------------------------------------------
while($row = mssql_fetch_array($_rs)){
  $str = $str . mb_strcut($row['text'],0,230,'SJIS');
}
/*この結果は正しいものになっております*/

print <<<eof_
<script language="javascript">
 returnValue = "{$str}";
 window.close();
</script>
eof_;

直面している問題は,この文字列の中にある改行コードが,
javascriptのreturnValue = '
の部分で問題になり,「終了していない文字列型の定数です」というエラーが
返ってきてしまいます.

ereg_replaceをいろいろ試してはみたのですが,第1引数,第2引数を
どのように設定していいものか分からず手詰まりになっています.
ereg_replace("\r\n","@",$str)などにし,読込み元のページで@を\nに
もどせば,改行コードを復元した状態で,TEXTEREAに表示できるかと
考え試して見たのですが,sv.php時点でエラーになってしまうので,
解決策が見つからなくなってしまいました.

ご教授,お願い致します.


PHP-users メーリングリストの案内