2012-10-13 3 views
0

J'essaie lentement d'utiliser Simple HTML DOM Parser pour extraire du code HTML d'une page et insérer le code html dans la page en cours. (Je suis un débutant PHP)Simple HTML DOM Parser - Obtenir le chemin

Dans l'exemple, une personne entrerait le nom de la page seulement comme c.html. J'ai besoin du php pour regarder dans la page courante: div navbar un href qui finit w/$ pg, quand il trouve que le besoin d'obtenir le href complet ainsi j'ai le chemin, ainsi il peut être utilisé pour aller à cette page et tirer certains div spécifié

J'ai ce jusqu'à présent, mais le chemin est pas l'écho sur:

<?php 
include_once '%resource(simple_html_dom.php)%'; 
$pg = 'c.html'; 
echo 'Page: ' . $pg . '<br />'; // Works 
$html = file_get_html(); // needs to look in current pg 
foreach($html->find('#navbar a[href$=$pg]') as $path) // Doesn't work 
    echo 'Path: ' . $path; 
$html = file_get_html($path); 
foreach($html->find('#testdiv2') as $ret) 
    echo $ret; 
?> 

Merci pour l'aide.

code mis à jour:

<?php 
include_once 'path/to/resource/simple_html_dom.php'; 
$pg = 'c.html'; 
echo 'Page: ' . $pg . '<br />'; 
function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) 
foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path) 
    echo 'Path: ' . $path; 
$html = file_get_html($path); 
foreach($html->find('#testdiv2') as $ret) 
    echo $ret; 
?> 
  • La comprennent une fois la ligne est un format de plug-in spécial - je l'ai changé pour montrer un exemple de chemin vers le fichier - qui doit être lisible par php, non?

  • En définissant la fonction file_get_html (rappelez-vous que j'utilise Simple HTML DOM Parser): Comment définir $ url pour la page en cours? (J'ai besoin que ceci soit défini automatiquement) Est-ce que le% s signifie "se termine par"? (Je n'ai pas vu cela dans les documents que j'ai regardés)

  • Dois-je appeler la fonction dans le 1er foreach ou assigner $ html à la fonction? (A-t-il besoin de parenthèses ou d'une fin;?)

  • Pour la 2ème foreach, si $ html est redéfini, alors il fonctionnera bien?

Pouvez-vous expliquer ce me @Baba, comme cela est nouveau pour moi :)

+0

Quelqu'un peut-il s'il vous plaît aidez-moi à ces questions et obtenir le fonctionnement du script - grâce – parti

Répondre

1

Ce qui suit est non pas un moyen valable d'inclure un fichier

include_once '%resource(simple_html_dom.php)%'; 

Il devrait être quelque chose comme

include_once __DIR__.'/simple_html_dom.php'; 

file_get_html attendre au moins un paramètre qui est $url

function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) 

Je veux aussi croire que votre découverte devrait ressembler somthing comme ce

foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path) 
+0

Voir ci-dessus pour le code mis à jour et questions - Merci – parti