2014-10-02 2 views
-1

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

$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

Посмотрите на код HTML, сгенерированный вашим скриптом, вы должны заметить что-то о содержимом атрибута 'value' ... и о том, как он отличается от нотации, которую вы использовали для других атрибутов. – CBroe

ответ

0

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

Лучше:

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

Это может быть не самое красивое решение, но оно не должно нарушать форматирование.

+0

Спасибо большое –

-1

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

value='.$string.' 

Измените это

value="'.$string.'" 
+0

Если я это сделаю, он печатает «Epitope/Cluster», поэтому я все еще не уверен, как это исправить. –

0

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

$string = str_replace('"', '&quot;', $string); 
echo '<input type="hidden" name="csv_content" value="'.$string.'">'; 
Смежные вопросы