PHP - Post方法没有传递完整的值

时间:2014-10-02 20:09:04

标签: php string input

我有一个与fputcsv的csv文件形式的字符串相关联的变量$ string。 $ strin变量如下所示:

$string='Epitope/Cluster,"Epitope ID" LEYIPEITLPVIAALSIAES,"35768,28983,35767" NILMQYIKANSKFIGITELK,"52929,27213,44284,52930" DIIDDFTNESSQKTTIDKIS,8659 LINSTKIYSYFPSVISKVNQ,"36647,31484" ILFLQWVRDIIDDFTNESSQ,"27043,79996"';

我正在尝试将此字符串传递给另一个名为csv_file.php的php文件。我正在使用的是:

echo'<form method="POST" action="csv_file.php">';
echo'<input type="hidden" name="csv_content" value='.$string.'>';
echo'<input type="submit" value="Download">';
echo'</form>';

但是当我使用:

在其他php页面中打印变量时
$csv_content = $_POST['csv_content'];
print($csv_content);

我总是把字符串打印到它的第一个空白区域,所以打印出来:

Epitope/Cluster,Epitope

您知道如何纠正这个问题吗? 谢谢

3 个答案:

答案 0 :(得分:0)

首先,使用html实体转义$string中的双引号。然后,用双引号括起字符串:

$string = str_replace('"', '&quot;', $string);
echo '<input type="hidden" name="csv_content" value="'.$string.'">';

答案 1 :(得分:0)

要在您的值属性中使用",您应该正确使用'。 目前,'只打破了PHP字符串。

更好:

echo '<input type="hidden" name="csv_content" value=\''.$string.'\'>';

它可能不是最美丽的解决方案,但它不应该打破你的格式。

答案 2 :(得分:-1)

问题是您的值不是在标记中封装的字符串。

value='.$string.'

更改此

value="'.$string.'"