2012-02-17 68 views
0

我查詢我的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形式?

回答

3

您在<<<和文字結尾關鍵字之間有空格。這可能會導致問題。

此外,在$row[0]$row[1]$row[2]打電話htmlspecialchars當你將他們分配到的變量,並在您value="..."屬性使用雙引號。

+0

好的htmlspecialchars做的伎倆,我沒有意識到它的存在,在那裏很酷的小功能。畢竟,heredoc並不是最基本的問題,儘管我確實有一些語法錯誤,這在某種程度上是有效的。感謝您提供htmlspecialchars小費。添加完後,我忘記將表單中的單引號更改爲雙引號,並且在字符串中單引號後仍然截斷 - 顯然,必須在heredoc形式中爲php變量使用雙引號。 – wantTheBest 2012-02-17 19:36:36

0

在你需要證明有雙引號「你的價值」,如果你正在使用PHP來打印一些HTML代碼通過ECHO你需要使用單引號,以顯示你在輸入框中

看重簡單 的Html代碼
+0

如果使用的是簡單的HTML輸入使用本 <輸入的ID =「ID」類型=「文本」名稱=「名稱」的值=「ABC」 /> 或 如果正在使用PHP的echo命令來打印HTML代碼使用這個 echo「」; – 2015-07-25 11:13:00