2016-07-29 1 views
0

Disons qu'une application Web simple, comme ci-dessous, s'exécute, en utilisant Simple HTML Dom Parser.Meilleure façon d'obtenir des éléments illisibles par Simple HTML Dom Parser dans PHP

<?php 
    include('simple_html_dom.php'); 

    $html = file_get_html('http://someurl.com'); 
    echo $html; 
?> 

Comme prévu, tout arrive sauf pour un élément, une div de classe .addedDiv, qui semble être injecté par JS. De la manière la plus simple et la plus inclusive, pouvez-vous démontrer comment cet élément peut être récupéré avec le minimum de code, avec un exemple, (mise à jour) de préférence en ligne et facile à mettre en œuvre pour la plupart des gens, que ce soit avec PHP, AJAX, ou, je ne sais pas, iFrame hack? Merci d'avance pour toute aide.

MISE À JOUR:

, si elle aide aussi, je ne ai pas besoin (ou si vous voulez) il avec tout sorti d'autre. J'ai juste besoin d'un attribut pour simuler des fonctionnalités supplémentaires. Par conséquent, s'il y a une différence, je n'ai pas besoin d'avoir un '$ html' qui affiche tout le contenu d'un site web à l'écran (si je le faisais, j'utiliserais simplement un iframe).

Répondre

0

Je pense que vous pouvez utiliser le module phantomjs. vous devez l'installer. Phantomjs est un utilitaire de ligne de commande, donc en php vous pouvez l'exécuter par la commande exec() et obtenir le foutput attendu.

Pour plus vous devez apprendre à obtenir du contenu HTML après modifié par JS d'ici http://phantomjs.org/api/webpage/property/content.html

+0

Merci pour les conseils, et je serai sûr d'examiner. Cependant, pour des raisons de simplicité, y a-t-il un moyen de le faire complètement en ligne (peut-être en utilisant PHP ou, plus que probablement, AJAX)? Cela serait non seulement préférable, mais rendrait également la méthode plus accessible, car j'espère que cela mènerait à des instructions plus détaillées et faciles à reproduire. – MoMN

+0

Malheureusement, il n'y a aucun moyen d'exécuter le code Javascript du côté PHP ... en fait phantomjs est une ligne de commmand non pas une fonction php donc vous devez faire en exécutant la commande par le code php. –