2011-11-03 192 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