Comment puis-je utiliser “PHP Simple HTML DOM Parser” pour obtenir le contenu d'un <h1></h1> tag?
Je suis nouveau en PHP =) maintenant j'utilise les includes PHP pour mon site modèle. J'ai mon en-tête, contenant tous mes <head></head>
info. Ce que je veux faire est d'écrire un code qui permettra de prendre le contenu de la <h1></h1>
tag de la page, et de l'écho dans le <title></title>
balise dans mon header.php inclure.
J'ai eu le PHP Simple HTML DOM Parser à partir d'ici: [http://simplehtmldom.sourceforge.net/][1], et j'ai trouvé un code (j'ai oublié où, dans toutes mes recherches sur google), qui va comme ceci:
<?php
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$html = file_get_html('http://www.myurl.com/');
foreach($html->find('#content h1') as $element){
echo $element->plaintext;}
?>
Qui, je pense, est censé faire écho à la balise h1 contenu? Comme je l'ai dit, je suis nouveau en PHP et je ne connais que les bases, et je ne sais pas vraiment connaître toute la programmation orientée objet (encore), donc je suis désolé si je pose une question stupide.
On dirait qu'il se fait de la page en cours, puis mettre le contenu de la balise h1 dans la variable $element, et puis il écho. Mais rien ne se passe quand je l'ai mis dans ma page. Quelqu'un peut m'aider avec ce que je fais mal? Merci pour la lecture!! =)
EDIT: Voici mon code HTML
De l'header.php fichier:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
/* current page url */
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
<?php include '/home/dreami14/public_html/simplehtmldom/simplehtmldom/simple_html_dom.php' ?>
<title>
<?php
$url = curPageURL();
$html = file_get_html($url);
foreach($html->find('#main h1') as $element){
echo $element->plaintext;}
?></title>
<link rel="stylesheet" type="text/css" href="/stylesheet.css" />
</head>
<body>
De test.php:
<?php include '/home/dreami14/public_html/design/includes/head.php' ?>
<div id="main">
<h1>This should be the title</h1>
<p>Blah blah</p>
</div>
</body>
</html>
Je ne reçois pas toutes les erreurs, mais mon <title></title>
est vide.
Modifier pour ajouter: aussi, j'ai fait l'écho de $url dans le document lui-même donc je sais que la partie est de travail
Merci Felix - de sorte que quand je fais ceci:[[[ $html = file_get_html($url); ]]], est que la partie qui est l'appel de la page entière? Est-il une autre façon de faire ce que vous connaissez?
Simple HTML DOM parser - bon script. Votre "modèle" - mauvaise idée.
OriginalL'auteur KeriLynn | 2010-05-14
Vous devez vous connecter pour publier un commentaire.
Vous ne dites pas comment votre code HTML est structuré, mais si vous voulez trouver le
h1
avec l'IDcontent
vous devez utiliserla façon dont vous êtes en train de faire maintenant, dit-il "trouver tout
h1
élément dans un autre élément avec l'IDcontent
".pouvez-vous montrer le code HTML que vous interrogez?
Ok, c'est, encore une fois merci pour votre aide
OriginalL'auteur Pekka 웃
Je restructurer votre code un peu. Fondamentalement, vous essayez d'obtenir le contenu en
h1
avant il est peuplé. Dans votretest.php
je voudrais définir un tableau avec des méta-données et de l'inclure l'en-tête.Comme:
test.php
head.php
:Mais si vous commencer à faire plus de trucs compliqués, vous devriez jeter un oeil à la Modèle-Vue-Contrôleur modèle de conception, par exemple, le Zend framework, qui l'implémente.
OriginalL'auteur Felix Kling
Je pense que c'est la façon dont, d'imprimer uniquement le contenu enfant:
OriginalL'auteur superedi