1

我一直在尝试执行以下操作,但一直无法弄清楚。

我在 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。

我该怎么做呢?

谢谢

4

4 回答 4

1

尝试在这样的任何字符串中使用 ' 而不是 " :

$var = "<div style='display:inline'>how</div>
        <div style='display:none'>are</div>
        <div style='display:inline'>you</div>
        ?";

它现在必须工作

于 2013-08-13T01:37:10.420 回答
0

display:none首先,用using preg_replace擦除该行,然后用 usestrip_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) );
于 2013-08-12T23:54:03.040 回答
-1

您不必渲染它,您可以解析 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?
于 2013-08-12T23:41:35.940 回答
-2

我认为您错误地设置了 $var,您需要转义那些内部的 "s

如果您需要完整的内容,只需使用 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);

结果:

你好吗 ?

于 2013-08-12T23:49:02.677 回答