string — метод Post не передает полное значение

У меня есть переменная $ string, связанная со строкой в ​​виде CSV-файла из fputcsv. Переменная $ strin выглядит следующим образом:

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

Я пытаюсь передать эту строку в другой файл php с именем csv_file.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

Вы знаете, как исправить эту проблему?
Спасибо

-1

Решение

Использовать " в вашем атрибуте значения вы должны использовать ' вокруг них правильно.
На данный момент ваш ' только ломает строку PHP.

Лучше:

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

Возможно, это не самое красивое решение, но оно не должно нарушать форматирование.

0

Другие решения

Во-первых, избегайте двойных кавычек в $string с HTML-сущностями. Затем окружите строку двойными кавычками:

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

Проблема в том, что ваше значение не является инкапсулированным в вашей разметке.

value='.$string.'

Изменить это

value="'.$string.'"
-1
По вопросам рекламы [email protected]