У меня есть переменная $ 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
Вы знаете, как исправить эту проблему?
Спасибо
Использовать "
в вашем атрибуте значения вы должны использовать '
вокруг них правильно.
На данный момент ваш '
только ломает строку PHP.
Лучше:
echo '<input type="hidden" name="csv_content" value=\''.$string.'\'>';
Возможно, это не самое красивое решение, но оно не должно нарушать форматирование.
Во-первых, избегайте двойных кавычек в $string
с HTML-сущностями. Затем окружите строку двойными кавычками:
$string = str_replace('"', '"', $string);
echo '<input type="hidden" name="csv_content" value="'.$string.'">';
Проблема в том, что ваше значение не является инкапсулированным в вашей разметке.
value='.$string.'
Изменить это
value="'.$string.'"