1

私は長い間次のことをやろうとしてきましたが、それを理解することができませんでした。

たとえば、次のようにhtmlを含むphpに文字列があります。

$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

まず、preg_replacedisplay:noneを使用して行を消去し、次に使用して他の html タグを取り除きます。strip_tags

$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 に答える