我查詢我的MySQL數據庫表和檢索看起來像這樣的文本字符串:PHP的文本字符串變量
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變量。我馬上就看到,遇到字符串中的第一個空格時,字符串被截斷 - 表單只顯示文本直到第一個空格。
因此,我在heredoc表單中放置了單引號(見下文)。
現在,當來自數據庫的字符串具有單引號時,我會截斷。
我可以把我周圍的PHP變量引號,但我得到的文本字符串截斷時,單引號,雙引號 ,如果我不要引用在定界符的PHP變量 - 在字符串截短的空間從那一點開始的字符串。
我使用PHP,這裏是從MySQL查詢結果中獲取數據,存儲數據庫中的數據到PHP變量的代碼,然後將其應用於一個定界符:
$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正在搞砸(不知何故)。
所以在定界符,我該如何使用PHP變量,可以看到:
- 單引號
- 雙引號
- 空間
- html標籤
- 任何可打印字符,真的
在heredoc形式?
好的htmlspecialchars做的伎倆,我沒有意識到它的存在,在那裏很酷的小功能。畢竟,heredoc並不是最基本的問題,儘管我確實有一些語法錯誤,這在某種程度上是有效的。感謝您提供htmlspecialchars小費。添加完後,我忘記將表單中的單引號更改爲雙引號,並且在字符串中單引號後仍然截斷 - 顯然,必須在heredoc形式中爲php變量使用雙引號。 – wantTheBest 2012-02-17 19:36:36