2

fgetcsv()から変数を操作できません$_POST

(  delimiter = (string)$_POST['delimiter'];)

次のように指定すると機能します。$delimiter = "\t";

しかし、私が使用するときではありません: $delimiter = (string)$_POST['delimiter'];

  1. HTML

    <html>
    <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
            1) Select a delimiter.<br />
            <input type="radio" name="delimiter" value="\t"checked="yes" /> Tab<br />
            <input type="radio" name="delimiter" value=" "/> Space<br />
            <input type="radio" name="delimiter" value=","/> Comma<br />
            <input type="radio" name="delimiter" value=";"/> Semicolon<br /><br />
            <input type="hidden" name="MAX_FILE_SIZE" value="1000">
            2) Send this file: <input name="userfile" type="file"><br /><br />
            3) <input type="submit" value="Send Info">
    </form>
    <br />
    </body>
    </html>
    
4

3 に答える 3

3

Already $_POST is a string. Why do you need (string) in front of the $_POST? Just remove it. Just have:

delimiter = $_POST['delimiter'];

This should work.


Also, you should not use fgetcsv, as you aren't fetching a file. You need str_getcsv.

str_getcsv($_POST["csv"], $_POST['delimiter']);
于 2013-02-14T16:16:01.957 に答える
0

この問題に遭遇し、次のコードで解決しました。

$delimiter = $_POST['delimiter'];
$delimiter = str_replace("\\t","\t",$delimiter);

かなり遅くなりましたが、このミステリーに夢中になっている誰かの助けになれば幸いです。

于 2016-07-23T00:51:17.210 に答える