2011-11-03 193 views
1

我有包含像这样的html <object>的字符串数组:PHP字符串不输出html标签?

$str = '<object width="600" height="338"> 
<param name="movie" value="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed"></param> 
<param name="allowFullScreen" value="true"></param> 
<param name="allowscriptaccess" value="always"></param> 
<embed src="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed" type="application/x-shockwave-flash" width="600" height="338" allowscriptaccess="always" allowfullscreen="true"></embed> 
</object>'; 

经历其中的一个循环,每一个里面,我呼应出来。

的问题是,代替呼应DOM元素,正在打印的字符串像这样:

<div> 
"<object width="600" height="338"> 
    <param name="movie" value="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed"></param> 
    <param name="allowFullScreen" value="true"></param> 
    <param name="allowscriptaccess" value="always"></param> 
    <embed src="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed" type="application/x-shockwave-flash" width="600" height="338" allowscriptaccess="always" allowfullscreen="true"></embed> 
    </object>" 
</div> 

引号为如果我打印的阵列被使用,但是我已检查该类型var是字符串。

这是怎么回事?

编辑:

我的字符串实际上是从一个API,在这里我分析了一些信息,并使用后续阵列拉:

Array 
(
    [content] => <object width="600" height="338"><param name="movie" value="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed" type="application/x-shockwave-flash" width="600" height="338" allowscriptaccess="always" allowfullscreen="true"></embed></object> 
    [width] => 600 
    [scrolling] => 
    [height] => 338 
) 

我拿起[content],我试图输出<object>本身。

+0

混合'’' ? – ManseUK

+1

您的示例无效 - 您需要为字符串使用单引号或转义字符串中的所有双引号。 – nickb

+0

你的字符串变量是通过'htmlspecialchars()'或'htmlentities()'输出的。 – Tomalak

回答

1

+0

为什么downvote?该字符串没有引号/转义问题,请参阅编辑。 – sgb

0

你的问题是你的双引号的使用:

尝试(字符串括单引号)

$str = '<object width="600" height="338"> 
<param name="movie" value="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed"></param> 
<param name="allowFullScreen" value="true"></param> 
<param name="allowscriptaccess" value="always"></param> 
<embed src="http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed" type="application/x-shockwave-flash" width="600" height="338" allowscriptaccess="always" allowfullscreen="true"></embed> 
</object>'; 
0

你需要逃避你的字符串。

$str = "<object width=\"600\" height=\"338\"> 
<param name=\"movie\" value=\"http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed\"></param> 
<param name=\"allowFullScreen\" value=\"true\"></param> 
<param name=\"allowscriptaccess\" value=\"always\"></param> 
<embed src=\"http://www.youtube.com/v/YQSFQUkVUos?version=3&feature=oembed\" type=\"application/x-shockwave-flash\" width=\"600\" height=\"338\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed> 
</object>"; 
0

可能是因为你声明了一个字符串“并且该字符串包含”标记。尝试转换为HTML有单引号'或单打引号声明字符串,甚至逃避用反斜杠HTML中的双引号\‘上解决了这个字符串使用html_entity_decode