我一直在努力做以下事情并且无法弄明白。
我在php中有一个字符串,其中包含html,如下所示:
$var = "<div style="display:inline">how</div>
<div style="display:none">are</div>
<div style="display:inline">you</div>
?";
并想存储另一个字符串$ var2,“howyou?”; 基本上,我想在某种意义上在PHP中呈现html。
我该怎么做?
由于
答案 0 :(得分:1)
尝试在任何字符串中使用'而不是' 那样:
$var = "<div style='display:inline'>how</div>
<div style='display:none'>are</div>
<div style='display:inline'>you</div>
?";
现在必须工作
答案 1 :(得分:0)
首先,使用preg_replace删除display:none
行,然后使用strip_tags
删除其他html标记
$var = '<div style="display:inline">how</div>
<div style="display:none">are</div>
<div style="display:inline">you</div>
?';
$pattern = '/.*display:none.*/';
$var2 = strip_tags( preg_replace($pattern, '', $var) );
答案 2 :(得分:-1)
你不必渲染它,你可以parse the HTML。
$dom = str_get_html('<div style="display:inline;">how</div>
<div style="display:none">are</div>
<div style="display:inline">you</div>
?');
$invisible = $dom->find('[style*=display:none]');
$stripped_html = $dom->outertext;
foreach($invisible as $node)
{
$stripped_html = str_replace($node->outertext, "", $stripped_html);
}
echo str_replace(" ", "", str_get_html($stripped_html)->plaintext);
结果
howyou?
答案 3 :(得分:-2)
我认为你错误地设置了$ var,你需要逃避那些内在的
如果您需要完整的内容,只需使用strip_tags()
$var = "<div style=\"display:inline\">how</div>
<div style=\"display:none\">are</div>
<div style=\"display:inline\">you</div>
?";
echo strip_tags($var);
结果:
你好吗?