Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php变量内容转换为html字符串_Php_Html_Parsing_Variables - Fatal编程技术网

将php变量内容转换为html字符串

将php变量内容转换为html字符串,php,html,parsing,variables,Php,Html,Parsing,Variables,我正在使用解析来自html的数据 变量$e包含html数据(divs、imgs等)。如果我在屏幕上用foreach循环回显它,它会完美地在屏幕上打印出来。如何将此$e转换为字符串?我的目标是让它看起来像这样并使用: $x = str_get_html('<div id="BodyContent">Hello</div> <div id="world">World</div>...otherData'); $x

我正在使用解析来自html的数据

变量$e包含html数据(divs、imgs等)。如果我在屏幕上用foreach循环回显它,它会完美地在屏幕上打印出来。如何将此$e转换为字符串?我的目标是让它看起来像这样并使用:

$x = str_get_html('<div id="BodyContent">Hello</div>
                   <div id="world">World</div>...otherData');
$x=str\u get\u html('Hello
世界……其他数据);
我如何做到这一点,使$e内容在str_get_HTML中显示为常规HTML

更新:解析后变量$e应包含HTML数据:

<div id="BodyContent">
  <div id="somethingelse>
    <p>Some more content</p><a>Some links</a>
  <span></span>
</div>


$e
是数组或对象。将其强制转换为数组将确保即使是单个对象也可以对其进行内爆,然后内爆将调用所有对象上的_toString,从而为您提供一个html字符串:

$htmlstr = implode("\n", (array) $e);
数组强制转换可能有些过分,因为为了从
find
中仅获取一个对象作为返回值,您必须使用特定索引调用它-因此您可能知道是否强制转换。。。但是如果你在一群人周围玩杂耍的话,你可能更容易像《我的秀》那样施展它,这样它就不会爆炸了

在这种情况下,您需要在API中找到所需的方法,并在每个元素上调用它。。。Id为此使用数组\u映射:

$htmlstr = implode("\n", array_map(function ($node) { return $node->whatever; }), (array) $e);

$e是来自find()的结果数组。尝试
echo introde(“”,$e)
获取字符串。它显示为格式化文本,而不是带有标记的HTML。我希望能够将其作为带有标记的html放入str_get_html(),然后您需要告诉浏览器您正在输出html,例如
标题('Content-type:text/html')
。我不想将$e输出到浏览器。我想将其作为非格式HTML插入str_get_HTML()…然后转换为字符串并使用常规字符串操作<代码>“”。内爆(“”,$e)。“”
。使用内爆将其显示为格式化文本。我想把带有标签的HTML放在str_get_HTML()中,这样我就可以用简单的HTML Dom解析器修改HTML了。我不知道是不是因为我不了解这一切,但这似乎有些过分了。变量$e中解析的数据包含一组HTML标记和来自网站的元素。我只是想把它变成一个标签和元素的字符串,而不是格式化的文本…我没想到会这么难…出于好奇,你是否将字符串从
内爆
转储到浏览器?如果是的话。。你知道它会被呈现为HTML,对吗?因此,如果你说的是“格式化”文本,那么我怀疑这是你正在寻找的html,因为格式化通常意味着html。。。它们实际上是对象,而不是标签串,为了获得标签,你需要从它们那里获得正确的字符串,必须通过属性或方法来访问。哈哈,这太荒谬了。好了,开始吧。变量$e包含来自网站正文的解析数据(…)。当我回显到浏览器时,它会显示我从网站上想要的部分。我想修改已解析的数据。使用SimpleHTMLDOM解析器,str_get_html()要求参数为字符串。因此,我想将$e变量的内容转换为字符串,如str_get_html(“…”)中所示;
$htmlstr = implode("\n", array_map(function ($node) { return $node->whatever; }), (array) $e);