创建文件txt时如何与文本保持一致 - PHP

时间:2015-07-06 07:51:34

标签: php html file text rewrite

我有代码

$file = fopen("file.txt",'w+');
if(isset($_POST['email']))
$string = $_POST['email'];;
fwrite($file, $string);

$ string有值:

I HAVE
NEW LINE

但是在运行我的代码后,我打开了file.txt。见:

I HAVE NEW LINE

我想用表格输入时保持线条相同。 我的表格

echo '<form method="POST" id="formmail" role="form">' .
    "\n" . '<div class="form-group">' .
        "\n" . '<input type="email" id="from" class="form-control" name="from" placeholder="From Email">' .
    "\n" . '</div>' .
    "\n" . '<div class="form-group">' .
        "\n" . '<input type="email" id="to" class="form-control" name="to" placeholder="To Email">' .
    "\n" . '</div>' .
    "\n" . '<div class="form-group">' .
        "\n" . '<input type="text" id="title" class="form-control" name="title" placeholder="Title Email">' .
    "\n" . '</div>' .
    "\n" . '<div class="form-group">' .
        "\n" . '<textarea cols="80" rows="10" id="list" placeholder="Enter List Email" class="form-control"/></textarea>' .
    "\n" . '</div>' .
    "\n" . '<div class="form-group">' .
        "\n" . '<textarea cols="80" rows="10" id="content" placeholder="Enter content Email" class="form-control"/></textarea>' .
    "\n" . '</div>' .
    "\n" . '<button id="OK" class="btn btn-danger">Sent Mail</button>' .
"\n" . '</form>';

的Javascript

<script>
    $(document).ready(function(e) {
        $("#OK").click(function(e) {
            var email = $('#list').val();
            $.ajax({
                type: 'POST',
                url: 'mail.php',
                data: 'email='+email,
                success: function(answer){
                    $('.kq').html(answer);
                }
            });
            return false;
        });
    });
</script>

http://i.imgur.com/sjy0BEZ.png http://i.imgur.com/cxayF5Y.png

1 个答案:

答案 0 :(得分:0)

一个简单的测试,看看当你在写入文件的字符串中实际有换行符时会发生什么,就是运行这样的快速测试

$file = fopen("file.txt",'w+');

if(isset($_POST['email']))
    $string = $_POST['email'];;

$string = "I HAVE\nNEW LINE";    // this definitely has a new line
fwrite($file, $string);

如果使用换行符写入文件,则$_POST['email']没有。{/ p>

如果您的电子邮件是使用

收集的
<input type="text"

如果使用

收集字符串,则字符串中不会有换行符
<textarea name="email"></textarea>
然后它可能有一个。但我不希望您使用<textarea

收集电子邮件地址

如果您使用<input type="email",请记住

  

电子邮件:该元素代表一个电子邮件地址。 会自动从输入值中删除换行符。可以设置无效的电子邮件地址,但是如果电子邮件地址满足ABNF生产1 *(atext /&#34;。&#34;)&#34; @&#34;则输入字段将仅满足其约束。 ldh-str 1 *(&#34;。&#34; ldh-str)其中atext在RFC 5322第3.2.3节中定义,而ldh-str在RFC 1034第3.5节中定义。

实际上现在我看到你的HTML有一个更明显的问题!!

您使用包含电子邮件地址的字段的名称错误,应该是$_POST['from']$_POST['to']

或者,如果您希望从

获取数据
<textarea cols="80" rows="10" id="list" placeholder="Enter List Email" class="form-control"/></textarea>'

然后你实际上没有给这个name="email"属性,所以除非你使用javascript发送数据,否则什么都不会返回到$ _POST,在这种情况下显示JAVASCRIPT代码。