3

私はフォームのあるウェブサイトを持っています。フォームはメールアドレスに送信されるので、そこから読むことができます。私は自分自身に電子メールを送信してテストしてきましたが、メッセージを受信すると、次の例のようになると予想されます。

名前: ある男

番号: 123456789

電子メール: someguy@someweb.com

メッセージ:

クロワッサンリコリスマカロン。ナツメ カップケーキ カップケーキ カップケーキ 綿菓子デニッシュ。マフィンクロワッサンアップルパイ.

チュッパチャプス ジェリーオー オーツ ケーキ シュガープラム クロワッサン トッツィー ロール。レモンドロップをトッピングしたキャンディケーン。グミ ゼリー グミ ブラウニー ハルバ ゴマ スナップ キャンディー キャンデー アプリケ ーク。

マシュマロ キャラメル シュガー プラム ゼリー マカロン ゴマ スナップ デニッシュ パウダー ゴマ スナップ。ボンボン リコリス マフィン リコリス 綿菓子 デザート オーツ麦ケーキ。わたあめ・キャラメル・デザート・ケーキ・パイ・ジェリービーンズ・ティラミス。ケーキ・アプリケ・ティラミス・マフィン・マカロン・パイ・ドーナツ。

私は次のように受け取ります。

クロワッサンリコリスマカロン。ナツメ カップケーキ カップケーキ カップケーキ 綿菓子デニッシュ。マフィンクロワッサンアップルパイ. チュッパチャプス ジェリーオー オーツ ケーキ シュガープラム クロワッサン トッツィー ロール。レモンドロップをトッピングしたキャンディケーン。グミ ゼリー グミ ブラウニー ハルバ ゴマ スナップ キャンディー キャンデー アプリケ ーク。マシュマロ キャラメル シュガー プラム ゼリー マカロン ゴマ スナップ デニッシュ パウダー ゴマ スナップ。ボンボン リコリス マフィン リコリス 綿菓子 デザート オーツ麦ケーキ。わたあめ・キャラメル・デザート・ケーキ・パイ・ジェリービーンズ・ティラミス。ケーキ・アプリケ・ティラミス・マフィン・マカロン・パイ・ドーナツ。

すべての改行がなくなり、メッセージは 1 本の直線になります。

私はまだPHPに精通していないので、可能な限り簡単な方法で私を助けていただければ幸いです.

ここに私のPHPコメントセクションコードがあります:

<?php
//If the form is submitted
if(isset($_POST['submit'])) {
$emailText = $_POST['message'];
str_replace("\r", "\n", $emailText);

//Check to make sure that the name field is not empty
if(trim($_POST['contactname']) == '') {
    $hasError = true;
} else {
    $name = trim($_POST['contactname']);
}

//Check to make sure sure that a valid email address is submitted
if(trim($_POST['email']) == '')  {
    $hasError = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
        $hasError = true;
    } else {
    $email = trim($_POST['email']);
}

//Check to make sure sure that a phone number is submitted
if(trim($_POST['phone']) == '')  {
    $hasError = true;
} else if (!preg_match("/^[1-9][0-9]{0,10}$/", trim($_POST['phone']))) {
        $hasError = true;
    } else {
    $phone = trim($_POST['phone']);
}

//Check to make sure that the subject field is not empty
if(trim($_POST['subject']) == '') {
    $hasError = true;
} else {
    $subject = trim($_POST['subject']);
}

//Check to make sure comments were entered
if(trim($_POST['message']) == '') {
    $hasError = true;
} else {
    if(function_exists('stripslashes')) {
        $comments = stripslashes(trim($_POST['message']));
    } else {
        $comments = trim($_POST['message']);
    }
}

//If there is no error, send the email
if(!isset($hasError)) {
    $emailTo = 'myemail@gmail.com'; //Put your own email address here
    $body = "<strong>Name:</strong> $name <br><br><strong>Email:</strong> $email <br><br><strong>Contact:</strong> $phone <br><br><strong>Subject:</strong> $subject <br><br><strong>Message:</strong><br><br> $comments";
    $headers = 'From: Ucorp Online Form <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email . "\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    mail($emailTo, $subject, $body, $headers);
    $emailSent = true;
}
 ?>
4

2 に答える 2

3

を探していnl2br()ます。値を に設定してから適用します$comments

if(trim($_POST['message']) == '') {
    $hasError = true;
} else {
    if(function_exists('stripslashes')) {
        $comments = stripslashes(trim($_POST['message']));
    } else {
        $comments = trim($_POST['message']);
    }
    $comments = nl2br($comments);
}
于 2013-08-26T16:28:54.680 に答える
0

php の `str_replace() メソッドを試してください。

$emailText = $_POST['message'];
str_replace("\r", "\n", $emailText);

http://www.php.net/manual/en/function.preg-replace.php

于 2013-08-26T06:19:15.803 に答える