2011-05-05 5 views
0

Oui, je réalise que vous pouvez utiliser javascript/jQuery pour faire cela, mais je veux utiliser PHP (c'est plutôt un apprentissage). Je ne peux pas installer queryPath ou phpQuery puisque c'est sur l'hébergeur d'un client.Get body id using DOMXpath

Fondamentalement, je suis en train de modifier

function getElementById($id) { 
    $xpath = new DOMXPath($this->domDocument); 
    return $xpath->query("//*[@id='$id']")->item(0); 
} 

à utiliser, mais

Fatal error: Using $this when not in object context in blahblahblah on line # 

sont jetés et $this est non défini.

Fondamentalement ce que j'essaye de faire est d'obtenir la valeur d'identification de corps de la même page que le PHP est dessus.

Des idées?

+3

queryPath et phpQuery ne devraient pas avoir besoin d'être installés - ce ne sont que des fichiers PHP qui doivent être inclus. Plus pertinemment à votre question, vous utilisez '$ this', qui fait référence à l'objet courant, quand apparemment vous n'utilisez pas de code orienté objet. Peut-être pourriez-vous donner un contexte plus large pour votre code, en particulier lorsque 'domDocument' est défini. – lonesomeday

Répondre

0

On dirait qu'il essaye juste de faire une fonction pour faire quelque chose de ce truc Xpath plus facile.

Quelque chose comme

<?php 
function getElementById($id,$url){ 

$html = new DOMDocument(); 
$html->loadHtmlFile($url); //Pull the contents at a URL, or file name 

$xpath = new DOMXPath($html); // So we can use XPath... 

return($xpath->query("//*[@id='$id']")->item(0)); // Return the first item in element matching our id. 

} 

?> 

Je n'ai pas testé, mais il semble à peu près juste.