Obtenir du contenu à l'intérieur d'une balise html à l'aide de php et de le remplacer après le traitement
J'ai un code html (sample.html) comme ceci:
<html>
<head>
</head>
<body>
<div id="content">
<!--content-->
<p>some content</p>
<!--content-->
</div>
</body>
</html>
Comment puis-je obtenir le contenu de la partie qui est entre les 2 commentaire html '<!--content-->'
à l'aide de php? J'ai envie de le mettre, faire un peu de traitement et lieu de retour, j'ai donc pour obtenir et mettre! Est-il possible?
par "contenu", tu veux dire
some content
ou <p>some content</p>
et les nœuds de commentaire est toujours écrite <!--content-->
?OriginalL'auteur esafwan | 2010-08-04
Vous devez vous connecter pour publier un commentaire.
esafwan - vous pouvez utiliser une regex expression pour extraire le contenu entre la div (d'une certaine id).
J'ai fait cela pendant des balises d'image avant, de sorte que les mêmes règles s'appliquent. je vais regarder le code et de mettre à jour le message un peu.
[mise à jour] essayez ceci:
ou plus simplement:
jim
id
attribut dans<!--content-->
?gordon - la section qui est sorti, c'est le contenu qui est inclus dans le contenu (id) div. dans le même sens vraiment comme le jQuery $('#content').html() la fonction
mais comment puis-je charger le code html de $yourentirehtml?
esafwan - si à l'intérieur de votre programme php et sur le même domaine, file_get_contents google.co.royaume-uni/... si l'utilisation de javascript (jquery), puis l'ensemble de jeu de balle changements. mais je suis en supposant que vous n'êtes pas que vous n'avez pas balisé la question en tant que telle.
ok... gotcha maintenant 😉
OriginalL'auteur jim tollan
Si c'est un simple de remplacement qui ne comporte pas d'analyse de la réelle document HTML, vous pouvez utiliser une Expression Régulière ou même juste
str_replace
pour cela. Mais généralement, il n'est pas conseillé d'utiliser des Regex pour le HTML parce que le HTML n'est pas régulière et venir avec fiable modèles peuvent très vite devenir un cauchemar.Le droit chemin pour analyser HTML en PHP est d'utiliser une analyse de la bibliothèque qui sait vraiment comment donner un sens à des documents HTML. Votre meilleur natif pari serait DOM mais PHP a un certain nombre de d'autres natifs XML extensions vous pouvez utiliser et il ya aussi un certain nombre de bibliothèques tierces comme phpQuery, Zend_Dom, QueryPath et FluentDom.
Si vous utilisez le la fonction de recherche, vous verrez que ce sujet a été largement couverte et vous devriez avoir aucun problème à trouver des exemples qui montrent comment résoudre votre problème.
+1, et si vous êtes à la recherche d'un bon XPath pour correspondre à noeuds, c'est
(//*|//text())[preceding-sibling::comment()='content' and following-sibling::comment()='content']
Merci... Tous les liens qui m'a beaucoup aidé, mais il ne m'a pas répondu directement.. les Liens sont la peine de lire et m'a aidé à avoir plus de profondeur dans le php!
OriginalL'auteur Gordon
vérifier cela ,il va travailler pour vous
OriginalL'auteur Ankur Mukherjee
Jetez un oeil ici pour un exemple de code qui signifie que vous pouvez charger un document HTML dans SimpleXML http://blog.charlvn.com/2009/03/html-in-php-simplexml.html
Vous pouvez ensuite traiter comme une normale de SimpleXML objet.
EDIT: Cela ne fonctionne que si vous voulez que le contenu dans une balise (par exemple entre les <div> et </div>)
OriginalL'auteur Jake
Problème est avec les divs imbriqués
J'ai trouvé la solution ici
OriginalL'auteur piernik