• 締切済み

nl2bの代用関数を何か知っていますか?

下記のような内容で、input.html:「name="example"」に入力された内容をoutput.html: 「$example」に出力していますが、output.html:の表示が乱れます。nl2brの代用関数を何かご存知の方は、いませんか?複数あれば、複数教えて下さい。 また、下記コードでおかしな部分があれば、指摘してください。 input.html: <textarea name="example"></textarea> output.html: <?php echo nl2br(htmlspecialchars($example, ENT_QUOTES, 'UTF-8')) ?> 参考サイト等も教えて下さい。 よろしくお願いします。

みんなの回答

  • bis_love
  • ベストアンサー率80% (4/5)
回答No.1

表示が乱れる とのことですがどのように乱れますか? nl2brの代用関数ということですがstrtrなどでしょうか。 その場合、その関数を使って自分で関数を自作して使う形になるとは思いますが・・ PHPマニュアルのページのURL書いておきますね http://www.php.net/manual/ja/function.nl2br.php http://www.php.net/manual/ja/function.str-replace.php http://www.php.net/manual/ja/function.strtr.php

kitty1000
質問者

お礼

bis_loveさん ご回答、ありがとうございました。 こちらの問題ですが、使用しているソフトが干渉していたようです。 自分側で解決しそうですので、一旦、スレ閉じます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォームのtextareaにnl2brを使用すると、入力内容の改行部分に<br />が表示されてしまう。

    現在、フォームを作成しています。 セッションを利用してフォームの次のファイルにデータを受け渡しています。 問題は、フォームのtextareaにnl2brを使用すると、出力画面のtextareaに入力された内容において改行がある部分に<br />タグが表示されてしまうことです。 フォームの流れ: start.phpにおいてフォームに入力及び、入力エラーがある場合、入力内容訂正の表示。 mail.phpにおいて入力内容の確認及びデータ送信。 start.phpのtextarea以下: <textarea name="test"><?php echo nl2br(htmlspecialchars($input_data['test'], ENT_QUOTES, 'UTF-8')) ?></textarea> 解説:start.phpでは、フォームの入力項目のいずれかに入力エラーがあるとその項目の入力内容の訂正を促し、入力されたデータをもう一度表示します。(<textarea name="test">に入力されたデータをもう一度<textarea name="test">に表示します。) mail.phpにおいてstart.phpのtextareaに入力されたデータを表示する部分は以下: <?php echo nl2br(htmlspecialchars($input_data['test'], ENT_QUOTES, 'UTF-8')) ?> start.phpにおいて入力項目のいずれかにエラーがあり、<textarea name="test">に入力されたデータをもう一度<textarea name="test">に表示した場合も、また、mail.phpにおいてstart.phpのtextareaに入力されたデータを表示した場合も、<textarea name="test">内の文字列に改行があるとその部分に<br />が表示されてしまいます。 入力例: あいうえおかきくけこ たちつてと 表示例(nl2br使用): あいうえおかきくけこ<br /> たちつてと 解説:nl2brを使用した場合、<br />は挿入されてしまいますが、予定の場所で改行されて表示されます。 試しにnl2br()をコードから削除すると、以下のような表示となります。 表示例(nl2br未使用): あいうえおかきくけこたちつてと 解説:nl2brを使用しない場合、改行されません。 どのようにすれば、textareaに入力された内容の改行部分が改行だけされ<br />が表示されないようにできるでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • PHPの入力フォームの確認画面の構文エラー

    <?php session_start(); require_once "define.php"; echo "<b>質問内容</b><br>"; echo "タイトル : ".htmlspecialchars($_SESSION[TITLE], ENT_QUOTES)."<br>"; echo "URL : ".htmlspecialchars($_SESSION[URL], ENT_QUOTES)."<br>"; echo "メール : ".htmlspecialchars($_SESSION[MAIL], ENT_QUOTES)."<br>"; echo "<br>質問ありがとうございました。<br><br>"; echo "<a href=\"./index.php\">入力フォームに戻る</a>"; ?> こういう感じのPHPの構文を書いたんですがなぜか echoで表示してあるタイトル、URL、メールのところが ちゃんと表示されません define.phpは間違いなくちゃんとファイルとして書いてあります どこか間違っているところがあるのでしょうか? 原因がわかりません、一日中悩んだけど 答えがわかりません、どなたかよろしくお願いします。

    • 締切済み
    • PHP
  • チェックボックスの内容が送信出来ません。

    PHPのメールフォームにチェックボックスを追加しましたがうまく送れず頭を抱えています。 お力をお貸しください。 必要だと思われるソースです。 inquiry.html <form action="check_inquiry.php" method="POST"> <p><label for="title">お名前:</label> <input type="text" name="title" size="60"> </p> <p><INPUT type="checkbox" name="check[]" value="資料請求" />資料請求<INPUT type="checkbox" name="check[]" value="至急" />至急<INPUT type="checkbox" name="check[]" value="質問" />質問</p> <br /> <p><label for="massage">メッセージ:</label></p> <p><textarea name="message" cols="50" rows="20"></textarea></p> <p><input type="submit" value="内容の確認"></p> </form> check_inquiry.php <?php $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'], ENT_QUOTES); $m_check = $_POST['check']; ?> ■内容を確認してください。 <br> <form action="send_inquiry.php" method="POST"> <input type="hidden" name="title" value="<?php echo $title; ?>" /> <input type="hidden" name="message" value="<?php echo $message; ?>" /> <input type="hidden" name="check" value="<?php for($i=0; $i<sizeof($m_check); $i++){ echo "【${m_check[$i]}】"; } ?>" /> <br /> お名前: <br /> <?php echo $title; ?> <br /> 問い合わせ内容: <?php for($i=0; $i<sizeof($m_check); $i++){echo "【${m_check[$i]}】"; }; ?> <br /> メッセージ詳細: <br /> <?php // 改行部分にBRタグを埋め込む echo nl2br($message); ?> <br /> <input type="submit" value="お問い合わせ内容の送信"> </form> send_inquiry.php <?php $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'],ENT_QUOTES); $m_check = $_POST['check']; //日本語UTF8 mb_language('ja'); mb_internal_encoding('UTF8'); //自動送信<送信元のアドレス $name = '自動送信'; $email = 'メールアドレス'; $header = 'From: '. mb_encode_mimeheader($name) . '<' . $email .'>'; // メール送信 $result = mb_send_mail($email, $title, $message, $header, $m_check); //メール送信の確認 if ($result) { // メール送信の成功 echo '■管理人へ送信しました。'; } else { // メール送信の失敗 echo '■管理人への送信に失敗しました。'; } ?> チェックボックスにチェックを入れないと送信出来ますが チェックを入れると送信に失敗します。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • javascript php フォームについて

    javascriptで作ったフォームをphpに送信したいのですが、上手く送信できません。 どのようにすれば上手く送信することができるでしょうか? 回答お願いします。 javascript側のソース <body> <form name="nform1" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問1</p> <p> (1)<input type="text" name="kaitouran11" size="20"> (2)<input type="text" name="kaitouran12" size="20"> (3)<input type="text" name="kaitouran13" size="20"> (4)<input type="text" name="kaitouran14" size="20"> </p> </form> <form name="nform2" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問2</p> <p> (1)<input type="text" name="kaitouran21" size="20"> (2)<input type="text" name="kaitouran22" size="20"> (3)<input type="text" name="kaitouran23" size="20"> (4)<input type="text" name="kaitouran24" size="20"> </p> </form> <form name="nform3" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問3</p> <p> (1)<input type="text" name="kaitouran31" size="20"> (2)<input type="text" name="kaitouran32" size="20"> (3)<input type="text" name="kaitouran33" size="20"> (4)<input type="text" name="kaitouran34" size="20"> </p> </form> <input type="button" value="送信" onClick="send()"> </body> php側のソース <body> <p>問1</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問2</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問3</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?> </p> </body>

    • 締切済み
    • PHP
  • 特殊文字のエスケープについて

    今PHPを勉強しています。全くの初心者なので、本を頼りにやっているのですが、エスケープの所がうまく行きません。分かる方がいたら教えて下さい。お願い致します。 <?php //データを受け取る $text1 = @$_POST["text1"]; //特殊文字をエスケープする $text2 = htmlspecialchars($text1); //エスケープ後の値を表示する echo "<p>エスケープ後:".$text2; //「ENT_QUOTES」を指定したとき echo "<p>ENT_QUOTES:".htmlspecialchars($text1, ENT_QUOTES); //「ENT_NOQUOTES」を指定したとき echo "<p>ENT_NOQUOTES:".htmlspecialchars($text1, ENT_NOQUOTES); ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td><input type="text" name="text1" value="<?php echo $text2?>"></td> <td><input type="submit" value="送信" name="sub1"></td> </tr> </table> </form> を実行して、<b>"太字"</b>を送信すると「"」の前に「\」が入ってしまいます。本では、<b>"太字"</b>のまま表示されるようなんです。。 文字コードはEUCで保存しています。

    • 締切済み
    • PHP
  • DBから出力の際preg_replace等が効かぬ

    データベースを使ったウェブサイト。 POSTを使ったformタグより、textareaにてテキストをsql文にて、 MySqlにinsertし、(このときにmysql_real_escape_string) 読み出すときにhtmlspecialcharsしてprint。 これが一般的な流れなのですが、 上記のまま行うと、改行(\r\n)がウェブ上に見えてしまいます。 ですので、 1:print preg_replace("/\r\n/","<br />", htmlspecialchars($ans['Pt_txt1'], ENT_QUOTES, 'UTF-8')); 2:print nl2br(htmlspecialchars($ans['Pt_txt1'], ENT_QUOTES, 'UTF-8')); などをやって消そうとしているのですが消えません。 ためしに、 $aaa ="適当な文字"; 1:print preg_replace("/\r\n/","<br />", htmlspecialchars($aaa, ENT_QUOTES, 'UTF-8')); 2:print nl2br(htmlspecialchars($aaa, ENT_QUOTES, 'UTF-8')); のように、MySqlを介さずに直接出力した場合、 ちゃんと改行コードは<br />に変更してくれましたので ソースの記述ミスではないと思うのです。 原因はなににあるでしょうか。 なお、現状phpmyadminで覗くと、 「フィールドA」(mysql_real_escape_stringを通してinsert) ----- あいうえお\r\nかきくけこ ----- 「フィールドB」(mysql_real_escape_stringを通さずにinsert) ----- さしすせそ たちつてと ----- となっているフィールドがありますが、 それらがhtmlで出力されたもののソースを見ると、 ----- A:あいうえお\r\nかきくけこ B:さしすせそ<br />たちつてと となぜかBのほうが希望通りの動きをします。 cを通さずにDBに入れてしまったほうが希望通りに動きます。 さっぱり困りました。

    • ベストアンサー
    • MySQL
  • データベースのテキストデータの改行方法について

    別サイトで質問して nl2br関数を使えば改行が反映されるとわかったのですが、 <?php $str = nl2br(htmlspecialchars($str, ENT_QUOTES, 'UTF-8'), false); や <?php function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } など、 上記のを試してみたのですが、データベース上のテキストデータの改行がサイトに反映されず困っております。 http://uploda.cc/img/img52b55ee23c01f.png このようにDBに記入したデータをどのようにすれば改行されますでしょうか? 初心者で非常に申し訳ございませんが宜しくお願いします。

    • 締切済み
    • PHP
  • nl2br()の記入例

    PHPを始めたばかりで行きづまってしまいました。 MySQLを利用したデータの出し入れなのですが、テキストエリア内の文章の改行についてです。 input.php(入力)⇒confirm.php(確認)⇒end.php(完了) という流れなのですが、input.phpで入力した内容をconfirm.phpで確認すると文章の改行がされてなかったので色々検索した結果、nl2br()使うというところまでは解ったのですが、実際どのように書くのか解りません・・・。 例えばこのようなソースの場合、どのような記述をすればいいのでしょうか? <html> <head> <title>薬屋さん</title> </head> <body> <?php $con = mysql_connect('aaa', 'bbb', 'ccc'); if (!$con) { exit('データベースに接続できませんでした。'); } $result = mysql_select_db('ddd', $con); if (!$result) { exit('データベースを選択できませんでした。'); } $result = mysql_query('SELECT * FROM kusriya', $con); echo "<dl>\n"; while ($data = mysql_fetch_array($result)) { $id = $data['id']; $shop = htmlspecialchars($data['shop']); $address = htmlspecialchars($data['address']); $phone = htmlspecialchars($data['phone']); $comment = htmlspecialchars($data['comment']); $navi = htmlspecialchars($data['navi']); $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> <form method="post" action="test_confirm.php"> <table> <tr> <th>ID</th><td><input type="text" name="id" /></td> </tr> <tr> <th>店名</th><td><input type="text" name="shop" /></td> </tr> <tr> <th>住所</th><td><input type="text" name="address" /></td> </tr> <tr> <th>電話</th><td><input type="text" name="phone" /></td> </tr> <tr> <th>コメント</th><td><textarea name="comment" cols="80%" rows="5"></textarea></td> </tr> <tr> <th>ルート</th><td><textarea name="navi" cols="80%" rows="5"></textarea></td> </tr> </table> <input type="submit" value="送信" /> <input type="reset" value="リセット" /> </form></body> </html> よろしくお願いします。

    • 締切済み
    • PHP
  • フォームで送られてきたメールの内容が消える。

    PHP初心者です。 メールフォームを作成し送信すると、メールは届くのですが、 メールの内容★の部分が消えてしまっています。 名  前: ★★ タイトル: ★★ メルアド: ★★ 内  容: ★★ ソース <?php $name= htmlspecialchars($_POST['name'],ENT_QUOTES); $title= htmlspecialchars($_POST['title'],ENT_QUOTES); $email= htmlspecialchars($_POST['email'],ENT_QUOTES); $naiyo= htmlspecialchars($_POST['naiyo'],ENT_QUOTES); $to="aaa@bbb.co.jp"; $subject = "ASK"; $message=" 名  前: $name \n タイトル: $title \n メルアド: $email \n 内  容: $naiyo \n"; if(mail($to,$subject,$message)) { echo "Thank you, your email has been send."; } else { echo "Sorry but there is an error. Try again please."; } ?> どなたかアドバイスをお願いします。

    • ベストアンサー
    • PHP
  • htmlspecialchars()について

    htmlspecialchars()関数で、クエリー文字列をHTMLエンティティーに変換してるはずなのですが、中身をダンプしたり、ジャンプしたページのクエリーを見ても、変換されておらず、生の 引数が表示されています。どうすれば、%2ケタなどの文字列で表示されるのか、ご指導お願い致します。スクリプトは下記のようなものです。なお、encoder.php, decoder.php は、両方UTF-8でエンコードしたスクリプトです。 --------------------------------------------------------------------------------------------------------- ジャンプ元:[encoder.php] <!doctype html> <html> <head><title>URLエンコード</title> <meta charset="UTF-8"> </head> <body> <br><br> <center> <?php $input = "空条"; $from = 1; $input2 = urlencode($input); $from2 = urlencode($from); $query_string = 'name='.$input2.'&from='.$from2; echo '<a href="decoder.php?'.htmlspecialchars($query_string, ENT_QUOTES, 'UTF-8').'">エンコード</a>'; ?> </center> </body> </html> -------------------------------------------------------------------------------------------- ジャンプ先「decoder.php」 <?php $name1 = $_GET['name']; $from1 = $_GET['from']; $name2 = urldecode($_GET['name']); $from2 = urldecode($_GET['from']); echo 'デコード前 '; echo '名前:'.$name1.' フロム:'.$from1.'<br>'; echo 'デコード後 '; echo '名前:'.$name2.' フロム:'.$from2; ?>

    • 締切済み
    • PHP