0

file_get_html()外部 HTML を取得するために使用していますが、問題があります。残りのコンテンツを取得することを避けながら、div 内のテキストをターゲットにできないようです。

レイアウトがこれであるとしましょう:

<div class="post">
    <h1>Andromeda v1.4 – WordPress – The Beauty of Simplicity</h1>
    <div class="infos b20">
    <img class="post_img" src="/imagini/512b93babf84b.jpg" alt="Andromeda v1.4 – WordPress – The Beauty of Simplicity">
    <div style="width:610px; margin:10px 0; overflow:hidden; display:block;">
enter code here

    Andromeda is a clean theme with functional CMS and unique features. A massive pack of backend CMS options was created for this product to give you full control while creating and editing the site and its features. The main idea behind this theme was to create a something clean and simple, useful, nice looking and easy to modify.
    <p></p>
    <h6>Demo</h6>
    <code>http://themeforest.net/item/andromeda-wordpress-the-beauty-of-simplicity/107876</code>
    <h6>Download:</h6>
    <div class="link alert clearfix">
    <div class="link alert clearfix">
    <div class="link alert clearfix">
    <div class="link alert clearfix">
    <div class="link alert clearfix">
    <div class="link alert clearfix">
    <p></p>
    <ul id="social_post" class="clearfix sharingbtns">
    <div class="comments">
</div>

もし私がするなら

$text = $dom->find('div[class=post]');
$text = $text[0]->plaintext;

私はすべてのコンテンツを取得します。テキストのみが必要で、クラスの投稿があるメイン div 内にあり、他のすべてのコンテンツは必要ありません。

これを達成するための最良の方法は何ですか?

他の div のテキストと量は可変ですが、div クラスは投稿され、テキストは常に同じ位置にあります。

編集:詳しく説明すると、投稿内のテキストのみが必要で、タグはありません

4

2 に答える 2

3

それが機能するかどうかをチェックせずにすばやく答えるだけです:

http://simplehtmldom.sourceforge.net/manual_api.htm

これを試して:

 $text = $dom->find('div[class=post]');
 $text = $text[0]->innertext;

また:

 $text = $dom->find('div[class=post]');
 $text = $text[0]->outertext;

ところで:

 <div style="width:610px; margin:10px 0; overflow:hidden; display:block;">

終了タグがないため、あなたが話しているDIV内にテキストはありません。どうか明らかにしてください。

于 2013-03-18T12:14:40.587 に答える
0
 $res = $html->find('div[class=post]',0)->plaintext;
于 2014-01-08T07:52:42.840 に答える