HTML de manipulation du DOM de PHP
Je me demande comment je peux manipuler le DOM arbre à l'aide de PHP?
J'ai vu quelques réponses XML avec DOM qui se charge en un fichier html. Mais que faire si je n'ai pas besoin de charger? Que faire si ont DOM XML, scripts à l'intérieur du document, je veux manipuler?
J'ai un exemple ci-dessous qui permet d'afficher tous les dossiers. Remplir les espaces vides dans vos réponses. Je veux créer des div-éléments avec le nom du dossier en tant que nœud de texte. La réponse devez avoir des DOM XML, scripts, car je vais créer plus d'éléments que juste un div-élément dans mon site web. Et à l'aide par exemple d'écho n'est pas pratique, car vous pouvez insérer un élément à l'intérieur d'un mauvais élément, etc.
$sql = "
SELECT name
FROM folders
WHERE profileId = '$profileId'
";
$result = mysql_query($sql) or die('Error6: '.mysql_error());
while($row = mysql_fetch_array($result)) {
}
- Pour clarifier, c'est le problème que vous êtes en train de construire une chaîne de caractères comme
<div id=my-id ></div>
en un seul endroit, et puis ailleurs dans le code que vous souhaitez insérer un noeud dans des div?
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de PHP pour manipuler le dom d'un document de générer déjà. C'est de loin plus facile d'avoir de l'PHP de générer directement le code HTML. DOM est là pour disect/modifier le code HTML qui a été produite ailleurs. En d'autres termes, votre script serait juste:
DOM exemple, pour démontrer l'ennui
Ok, voici la méthode PHP pour générer un paragraphe de texte avec des extensions et autres joyeusetés:
L'équivalent DOM appels: (pas testé, juste pour le démontrer):
Donc....... encore des chose à l'aide de DOM est plus facile que d'utiliser
echo
?Pour PHP driven de manipulation du DOM essayer phpQuery. Si vous êtes familier avec jQuery, la même syntaxe que lui fait une bonne bibliothèque à utiliser.
J'espère que j'ai bien compris.
Si ce n'est pas ce que vous cherchez, veuillez préciser votre question en ajoutant ce que vous essayez d'atteindre.
Techniquement, c'est avant DOM depuis que vous êtes à la construction de la page HTML avant la sortie vers le client, à quel point il devient le modèle d'objet de document dans le contexte du client. Par conséquent, votre manipulation du DOM est effectivement juste de génération HTML dans du PHP côté serveur.
J'ai également ajouté mysql_escape_string pour votre instruction sql pour aider à protéger contre les attaques par injection sql en utilisant htmlentities sur l'écho de sortie pour empêcher l'injection de scripts dans la page.
Si vous pensez que PHP crée un DOM comme vous l'écho HTML, cela n'arrive pas. Toutefois, vous pouvez utiliser le Marc de des échantillons B pour générer des nœuds DOM (que vous pouvez ajouter à l'). Après avoir manipulé ce nœud,vous pouvez alors l'écho de l'nœuds HTML à l'aide de http://www.php.net/manual/en/domdocument.savehtml.php
- Je trouver de l'aide de PHP intégré DOM mise en œuvre (libxml) très maladroit en raison à elle seule soutenir DOM 2. Je préfère utiliser phpgt/dom (https://github.com/phpgt/dom) disponible à travers le compositeur.
Exemple d'utilisation:
Documentation complète disponible sur le projet Github wiki: https://github.com/phpgt/dom/wiki