我查询mySql数据库表并检索如下所示的文本字符串:
This is a piece of a bronze artifact from the 'Bronze Age' -- it's in outstanding shape.
His amusing comment on the 3rd-century clay bowl: "Wow, she's a real piece!"
It's no secret that you 'don't mishandle old parchment artifacts, they're "very" fragile' -- yet it still happens.
问题 - 我使用php变量来保存从数据库读取的上述字符串,并使用我的heredoc形式的PHP变量。我立刻看到一个字符串在遇到字符串中的第一个空格时被截断 - 表单只显示文本到第一个空格。
所以我在我的PHP变量中以heredoc形式放置单引号(见下文)。
现在,当来自数据库的字符串有单引号时,我会被截断。
我可以在我的php变量周围加上引号,但是当单引号,双引号时我会截断文本字符串 如果我不引用heredoc中的PHP变量 - 字符串中的空格会截断该点上的字符串。
我正在使用PHP,这里是从mySql查询结果中获取数据的代码,将数据库数据存储到PHP变量中,然后在heredoc中使用它们:
$row = mysql_fetch_row($result);
//var_dump($row); // the dump proves that the full string comes
// out of the database, with spaces, single and double quotes
$descriptionOfArtifact = $row[0];
$commentsAboutTheDiggingSite = $row[1];
$expertRecommendationsForRestoring = $row[2];
// output the next row from the Artifacts table...
echo <<< NEXT_ROW_HEREDOC
<input type="text" id="Description"
name="descrip" value='$descriptionOfArtifact' readonly="readonly"></input>
<input type="text" id="Comments"
name="comments" value='$commentsAboutTheDiggingSite' readonly="readonly"></input>
<input type="text" id="Experts"
name="experts" value='$expertRecommendationsForRestoring' readonly="readonly"></input>
NEXT_ROW_HEREDOC;
我需要此表单来显示从数据库中读取并存储在上述PHP变量中的全文字符串。我认为变量名称周围的单引号会这样做,但我认为heredoc正在弄乱它(不知何故)。
所以在heredoc中,我如何使用PHP变量并能够看到:
以heredoc形式?
答案 0 :(得分:3)
<<<
和文本结束关键字之间有空格。这可能导致了这个问题。
此外,当您将htmlspecialchars
,$row[0]
和$row[1]
分配给变量时,请致电$row[2]
,并在value="..."
上使用双引号属性。
答案 1 :(得分:0)
在简单的 Html 代码中,您需要使用双引号显示您的值&#34;&#34;如果您使用php通过 ECHO 打印一些HTML代码,则需要使用单引号在输入框中显示值