2017-06-09 8 views
0

私はsimplehtmldomを使っていくつかのリンクのタイトルを取得していますが、ダウンロードしたコンテンツのサイズを制限できるのだろうかと疑問に思っていますか?タイトルを取得するコードの最初の20行だけ全体のコンテンツをダウンロードする代わりに。今、私はこれを使用していSimplehtmldom - get_htmlのコンテンツサイズを制限しますか?

$html = file_get_html($row['current_url']); 

    $e = $html->find('title', 0); 
    $title = $e->innertext; 
    echo $e->innertext . '<br><br>'; 

おかげ

答えて

1

私が何かを見逃している場合を除き、それは仕方のfile_get_htmlの作品はありません。ページの内容を取得します。

つまり、次の部分で探しているものを見つけるために、ページ全体を読み取る必要があります。

さて、あなたが使用した場合:

$section = file_get_contents('http://www.the-URL.com/', NULL, NULL, 0, 444); 

おそらく</head><body>または<title></title><!DOCTYPE html>から限り、あなたが取得しているページは常に同じであるように、HTMLの最初の20行を分離することができ。

その後、ヘッドの量が同じであれば、最初の20行を再度取得することができます。

は、次に使用:

$html = str_get_html($section); 

そしてそこからあなたの '検索'

$html->find('title', 0); 


EDIT使用:私はこれを試してみるよ

include('simple_html_dom.php'); 

$the_url = 'http://www.the-URL.com/'; 

// Read 444 characters starting from the 1st character 
$section = file_get_contents($the_url, NULL, NULL, 0, 444); 
$html = str_get_html($section); 

if (!$e = $html->find('title', 0)) { 
    // Read 444 characters starting from the 445th character 
    $section = file_get_contents($the_url, NULL, NULL, 444, 888); 
    $html = str_get_html($section); 
    $e = $html->find('title', 0); 
} 

$title = $e->innertext; 
echo $title . '<br><br>'; 
+0

感謝をしかし、すべてのページはもちろん違います(来る別のウェブサイトから)。 444は正確に何を意味しますか?キャラクター? – Oliver

+0

@Oliver正しいです。最初に書かれたとおり、次のことを意味します。最初の文字から始まる444文字を読み込みます。十分ではないと懸念される場合は、単に文字をもっと読むことができます。あるいは、if find is falseのif文を追加することもできます。EDITを参照してください。 –

関連する問題