PHP строка не выводит HTML-теги? - PullRequest
1 голос
/ 03 ноября 2011

У меня есть массив строк, которые содержат html <object>, вот так:

$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>';

Проходя через их цикл, каждый внутри a, я повторяю их.

Проблема в том, что вместо вывода элементов 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>

Кавычки используются так, как будто я печатаю массив, но я проверил, что типпеременной является строка.

Что здесь происходит?

РЕДАКТИРОВАТЬ:

Моя строка фактически извлекается из 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> сам.

Ответы [ 4 ]

2 голосов
/ 03 ноября 2011

с использованием html_entity_decode в строке исправили это.

0 голосов
/ 03 ноября 2011

Вы должны уйти от своих строк.

$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 голосов
/ 03 ноября 2011

Возможно, вы объявили строку с пометкой "а эта строка содержит". Попробуйте преобразовать html в одинарные кавычки или объявить строку одинарными кавычками или даже экранировать двойные кавычки в HTML с обратной косой чертой \ "

0 голосов
/ 03 ноября 2011

Ваша проблема заключается в использовании двойных кавычек:

Try (строка заключена в одинарные кавычки)

$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>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...