2013-08-07 61 views
0

好的,我使用PHP来解析XML文件并将其显示为HTML。这是代码。 示例文本是 - 不要放弃!PHP将变量传递给隐藏字段

$xml = simplexml_load_file('data/quotes.xml'); 
      foreach ($xml as $quote) { 
       $text = $quote->text; 
       echo '<div class="itemWrapper">'. 
          '<div class="quoteHolder">'. 
            '<p class="quote">'.$text.'</p>'. 
          '</div>'. 

          '<form class="selectionButtons">'. 
            "<input type='hidden' value='$text' name='quote'>". 
            '<input class="submitButton" type="button" value="create your design">'. 
          '</form>'. 
        '</div>'; 
      } 

所以,当我在段落使用$文本变量它显示的正确,但是,当我把它传递给表单的隐藏字段我只得到:唐(所以它是单引号前右停止)它发生的每带引号的文本。这是为什么?这里有什么问题?

+0

你需要转义报价 – 2013-08-07 02:31:32

+0

我试图逃避XML文件中的引用,但这没有任何区别。为什么它会在HTML段落中显示全文? –

+0

尝试像这样'addslashes($ text);' – meda

回答

1

尝试使用这一个...

$this_text = "Don't give up!"; 
$text = htmlspecialchars($this_text, ENT_QUOTES); 

echo "<input type='text' value='$text' />"; 

我在已经测试..

+0

谢谢,在看到你的答案之前就明白了这一点。无论如何,接受它作为工作代码。再次感谢 –

1

HTML input字段要求内容被转义。方便的是,PHP有一个函数,它所有的工作对您:

$display_text = "Don't give up!"; 
$input_text = htmlspecialchars($text); 

Reference

+0

经过一些修改,但有效。这里是工作代码 - $ input_text = htmlspecialchars($ text,ENT_QUOTES); –

相关问题