PHP将变量写入txt文件,导致逗号/标点重复

PHP将变量写入txt文件,导致逗号/标点重复,php,text-files,Php,Text Files,我已经将一些数据发布到一个php文件中,我需要将这些数据以逗号分隔保存/附加到一个文本文件中。这一切都很好,而且应该是直截了当的,除了当我检查文件时,我看到每个逗号都被写了两次:一次在需要的地方,然后在附加数据之后,但作为一组逗号。 以下是我得到的: <form action="signup-submit.php" method="post"> <fieldset> <legend>New User Signup:<

我已经将一些数据发布到一个php文件中,我需要将这些数据以逗号分隔保存/附加到一个文本文件中。这一切都很好,而且应该是直截了当的,除了当我检查文件时,我看到每个逗号都被写了两次:一次在需要的地方,然后在附加数据之后,但作为一组逗号。 以下是我得到的:

<form action="signup-submit.php" method="post">
        <fieldset>
            <legend>New User Signup:</legend>
            <label>Name:</label>
            <input type="text" name="name" size="16" autofocus required/> <br/>

            <label>Gender:</label>
            <label><input type="radio" name="gender" value="m" /> Male</label>
    <label><input type="radio" name="gender" value="f" checked /> Female</label> <br />

            <label>Age: <input type="text" name="age" size="6" maxlength="2" required></label><br/>

            <label>Personality Type: <input type="text" name="pType" maxlength="4" size="6" required/></label><br/>

            <label>
                Favorite OS:
                <select name="os">
                    <option value="windows">Windows</option>
                    <option value="mac">Mac OS X</option>
                    <option value="linux">Linux</option>
                </select>                    
            </label><br/>

            <label>
                Seeking age:
                <input name="min" type="text" size="6" maxlength="2" placeholder="min" required/>
                to
                <input name="max" type="text" size="6" maxlength="2" placeholder="max" required/>
            </label><br/>

            <input type="submit" value="Sign up"/>
        </fieldset>
    </form>
文本文件将永久复制逗号,如下所示:

拜伦,21,m,INTP,windows,18,23


变量只是从上一页发布到此文件的数据。我还尝试了各种方法来保存数据。事实上,如果我只直接写文本,我不会有任何问题。当我使用csv函数时,我得到的只是逗号,没有数据,尽管我认为格式正确

这可能是因为有时所有的变量都是空的,而您的
文件只添加了逗号

要解决此问题,请执行以下操作:

if (!empty($name) && !empty($age) && ...) {
   $s = "$name,$age,$gender,$pType,$os,$min,$max";
   file_put_contents("single.txt", $s, FILE_APPEND);
}

如果这些值是用户输入的,请始终仔细检查它们。PHP提供了标准函数来清理:,您还需要使用自定义规则进行输入验证(例如,检查某个变量是否在某个范围内,但这是另一个问题)。

这可能是因为有时所有变量都是空的,而您只需添加逗号即可

要解决此问题,请执行以下操作:

if (!empty($name) && !empty($age) && ...) {
   $s = "$name,$age,$gender,$pType,$os,$min,$max";
   file_put_contents("single.txt", $s, FILE_APPEND);
}

如果这些值是用户输入的,请始终仔细检查它们。PHP提供了标准函数来清理:,您还需要使用自定义规则进行输入验证(例如,检查某个变量是否在某个范围内,但这是另一个问题)。

这可能是因为有时所有变量都是空的,而您只需添加逗号即可

要解决此问题,请执行以下操作:

if (!empty($name) && !empty($age) && ...) {
   $s = "$name,$age,$gender,$pType,$os,$min,$max";
   file_put_contents("single.txt", $s, FILE_APPEND);
}

如果这些值是用户输入的,请始终仔细检查它们。PHP提供了标准函数来清理:,您还需要使用自定义规则进行输入验证(例如,检查某个变量是否在某个范围内,但这是另一个问题)。

这可能是因为有时所有变量都是空的,而您只需添加逗号即可

要解决此问题,请执行以下操作:

if (!empty($name) && !empty($age) && ...) {
   $s = "$name,$age,$gender,$pType,$os,$min,$max";
   file_put_contents("single.txt", $s, FILE_APPEND);
}


如果这些值是用户输入的,请始终仔细检查它们。PHP提供了标准函数来清理:,您还需要使用自定义规则进行输入验证(例如,检查变量是否在某个范围内,但这是另一个问题)。

您可以发布生成该变量的代码吗?您是否在循环中有该行代码?如果您确实这样做了,请发布您没有显示的额外代码,这将有助于了解实际发布数据的内容和方式。1。您应该在每行之后添加换行符,以查看添加空行和2时发生了什么。您可能应该使用
fputcsv()
。您可以发布生成此代码的代码吗?循环中有这行代码吗?如果您确实这样做了,请发布您没有显示的额外代码,这将有助于了解实际发布数据的内容和方式。1。您应该在每行之后添加换行符,以查看添加空行和2时发生了什么。您可能应该使用
fputcsv()
。您可以发布生成此代码的代码吗?循环中有这行代码吗?如果您确实这样做了,请发布您没有显示的额外代码,这将有助于了解实际发布数据的内容和方式。1。您应该在每行之后添加换行符,以查看添加空行和2时发生了什么。您可能应该使用
fputcsv()
。您可以发布生成此代码的代码吗?循环中有这行代码吗?如果您确实这样做了,请发布您没有显示的额外代码,这将有助于了解实际发布数据的内容和方式。1。您应该在每行之后添加换行符,以查看添加空行和2时发生了什么。您可能应该使用
fputcsv()
。丑陋的连接只是我尝试过的最新方法。我曾尝试在包含此数据的数组上使用implode(),编写自己的函数将所述数组转换为字符串并写入,等等。但总是得到相同的结果。您是否检查了变量是否为非空?我将按照您的建议立即编写一条if语句,看看它是否有效(祈求好运)丑陋的连接只是我尝试过的最新东西。我曾尝试在包含此数据的数组上使用implode(),编写自己的函数将所述数组转换为字符串并写入,等等。但总是得到相同的结果。您是否检查了变量是否为非空?我将按照您的建议立即编写一条if语句,看看它是否有效(祈求好运)丑陋的连接只是我尝试过的最新东西。我曾尝试在包含此数据的数组上使用implode(),编写自己的函数将所述数组转换为字符串并写入,等等。但总是得到相同的结果。您是否检查了变量是否为非空?我将按照您的建议立即编写一条if语句,看看它是否有效(祈求好运)丑陋的连接只是我尝试过的最新东西。我曾尝试在包含此数据的数组上使用implode(),编写自己的函数将所述数组转换为字符串并写入,等等。但总是得到相同的结果。您是否检查了变量是否为非空?我将按照您的建议立即编写一条if语句,看看它是否有效(祈求好运)