2017-06-09 1 views
0

J'utilise simplehtmldom pour obtenir le titre de certains liens et je me demande si je peux limiter la taille du contenu téléchargé? Au lieu de télécharger tout le contenu seulement les 20 premières lignes de code pour obtenir le titre.Simplehtmldom - limite la taille du contenu pour get_html?

En ce moment je suis en utilisant ceci:

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

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

grâce

Répondre

1

À moins que je l'ai raté quelque chose, ce n'est pas la façon dont fonctionne file_get_html. Cela va récupérer le contenu de la page. En d'autres termes, il faudrait lire toute la page pour trouver ce qu'elle recherche dans la partie suivante.

Maintenant, si vous deviez utiliser:

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

Vous pourriez probablement isoler les 20 premières lignes de html, tant que la page que vous obtenez est toujours le même du <!DOCTYPE html> au </head><body> ou <title></title> .

Ensuite, vous pourriez saisir les 20 premières lignes, ou ainsi, à nouveau tant que la quantité de tête est la même.

Ensuite, utilisez:

$html = str_get_html($section); 

Et puis d'y utiliser votre 'Find'

$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

Merci, je vais essayer ce mais toutes les pages sont différentes bien sûr (à venir de différents sites Web). Le 444 signifie quoi exactement? Personnages? – Oliver

+0

@Oliver c'est correct. Comme il est écrit à l'origine, cela signifie: Lire 444 caractères à partir du 1er caractère. Si vous craignez que cela ne vous suffise pas, vous pouvez simplement lire plus de caractères OU ajouter une instruction if pour 'if find is false', voir EDIT. –