0

PHP Simple HTML DOM Parserを使用してスパン クラスの最初の 3 つの単語を取得する方法は何ですか。
フェッチされたページのソース コードが次のようであると仮定します。

いくつかのテキスト<span class="sos">良い より良い 最良<i> Some text</i> here</span>再びここにいくつかのテキスト

php のシンプルな html dom パーサーを使用すると、次のようにスパン クラスのすべてのコンテンツを取得できます。

$data = $html->find('span class="sos"');

そのため、ここで$dataは、そのスパン クラスの完全なコンテンツを宣言します。
私がやりたいことは、スパン クラスの最初の 3 つの単語だけを新しい変数に取得することです。この場合、次のようにする必要があります。

$new_data = 'Good Better Best';

どうやってするの?
PHP シンプル HTML DOM パーサーマニュアル

4

3 に答える 3

1

@billyonecan post にコメントしたように、解決策は次のようになります。

$result = str_get_html($result);
foreach($html->find('.sos') as $xdat)
{
$x_des = implode(' ', array_slice(explode(' ', strip_tags($xdat)), 0, 3));
$result = str_replace($x_des, ' ', $result);
$result = str_get_html($result);
}

必要に応じてすべての変数を変更します。

于 2012-11-02T14:16:55.107 に答える
1

上記の回答に似ていますがstrip_tags、事前に文字列から HTML を削除するために使用します。

$output = implode(' ', array_slice(explode(' ', strip_tags($data)), 0, 3));
于 2012-11-02T10:56:11.313 に答える
1

これにはexplodeを使用してみてください。

$data = $html->find('span class="sos"');
$breakdata = explode(" ",$data);
$firstThreeWords = array_slice($breakdata, 0, 3);

$final = implode(" ",$firstThreeWords); //Good Better Best

最初の 3 つの単語を除外する場合は、

$data = $html->find('span class="sos"');
$breakdata = explode(" ",$data);
$removeFirstThreeWords = array_slice($breakdata, 2);

$final = implode(" ",$removeFirstThreeWords ); //Some text here
于 2012-11-02T10:51:16.657 に答える