begin process at 2012 02 12 09:56:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Xml

 > CLASSE DOMDOCUMENT COMPATIBLE PHP4 ET PHP5

CLASSE DOMDOCUMENT COMPATIBLE PHP4 ET PHP5


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Xml Classé sous :dom, php4, domdocument, domxml, xslt Niveau :Débutant Date de création :15/08/2007 Date de mise à jour :29/12/2008 14:29:46 Vu / téléchargé :17 409 / 424

Auteur : ordiman85

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Comme je l'ai promis et suite à ma source de création de document XHTML, j'ai concocté une classe DOM pour php4 et php5.
L'idée était de créer un site qui utilise DOM pour générer ses pages mais tout en étant compatible php4 et php5 afin de pouvoir être hébergé par la quasi-totalité des hébergeurs mutualisés !
Cependant il faut l'extension DOM XML de php4 qui n'est peut-être pas présente partout.

Pour que le script fonctionne, il faut juste remplacer "new DOMDocument" par "new _DOMDocument". Euh simple, nan ?
Bon voilà ! Le script est à améliorer puisque certains paramètres ne collent pas, par exemple je n'arrive pas à placer un doctype au DOMDocument, un vrai casse-tête !!!

Source

  • <?php
  • // Exemple d'utilisation 1
  • require_once("DOM.inc.php");
  • header("Content-Type: text/html");
  • $doc = new _DOMDocument();
  • $root = $doc->createElement('html');
  • $root = $doc->appendChild($root);
  • $head = $doc->createElement('head');
  • $head = $root->appendChild($head);
  • $title = $doc->createElement('title');
  • $title = $head->appendChild($title);
  • $name = $doc->createTextNode('Ceci est le titre');
  • $name = $title->appendChild($name);
  • $body = $doc->createElement('body');
  • $body = $root->appendChild($body);
  • $page = $doc->createElement('div');
  • $page->setAttribute('id', 'page');
  • $page = $body->appendChild($page);
  • $content = $doc->createTextNode('Voici un exemple de document fabriqué avec DOM !');
  • $content = $page->appendChild($content);
  • echo $doc->saveXML();
  • // Et cela donne :
  • ?>
  • <?xml version="1.0"?>
  • <html><head><title>Ceci est le titre</title></head><body><div id="page">Voici un exemple de document fabriqué avec DOM !</div></body></html>
  • <?php
  • // ------------------------------------------------------------
  • // Exemple d'utilisation 2
  • require_once 'DOM.inc.php';
  • // Chargement local
  • $xslDoc = new _DOMDocument();
  • $xslDoc->load("collection.xsl");
  • // Chargement statique
  • $xmlDoc = _DOMDocument::load("collection.xml");
  • // Processeur XSL
  • $proc = new XSLTProcessor();
  • $proc->importStylesheet($xslDoc);
  • echo $proc->transformToXML($xmlDoc);
  • ?>
<?php

// Exemple d'utilisation 1

require_once("DOM.inc.php");

header("Content-Type: text/html");

$doc = new _DOMDocument();
$root = $doc->createElement('html');
$root = $doc->appendChild($root);
	$head = $doc->createElement('head');
	$head = $root->appendChild($head);
		$title = $doc->createElement('title');
		$title = $head->appendChild($title);
			$name = $doc->createTextNode('Ceci est le titre');
			$name = $title->appendChild($name);
	$body = $doc->createElement('body');
	$body = $root->appendChild($body);
		$page = $doc->createElement('div');
		$page->setAttribute('id', 'page');
		$page = $body->appendChild($page);
			$content = $doc->createTextNode('Voici un exemple de document fabriqué avec DOM !');
			$content = $page->appendChild($content);
echo $doc->saveXML();

// Et cela donne :

?>
<?xml version="1.0"?>
<html><head><title>Ceci est le titre</title></head><body><div id="page">Voici un exemple de document fabriqué avec DOM !</div></body></html>
<?php


// ------------------------------------------------------------

// Exemple d'utilisation 2

require_once 'DOM.inc.php';

// Chargement local
$xslDoc = new _DOMDocument();
$xslDoc->load("collection.xsl");

// Chargement statique
$xmlDoc = _DOMDocument::load("collection.xml");

// Processeur XSL
$proc = new XSLTProcessor();
$proc->importStylesheet($xslDoc);
echo $proc->transformToXML($xmlDoc);

?>

 Conclusion

Quelques améliorations ont été apportées... Bon développement !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 décembre 2008 14:29:46 :
| Ajout de la classe XSLTProcessor. | Possibilité d'appeler load, loadXML, loadHTMLFile, loadHTML en statique depuis _DOMDocument. | _DOMDocument::createElement() accepte l'argument $value (merci DoudouBidou). | Bug corrigé sur _domxmlelement::normalize(), la méthode tagname() n'existe pas toujours.

 Sources du même auteur

Source avec Zip Source avec une capture MINI-PROCESSEUR XPROC (PIPELINE XML)
Source avec Zip [PHP4] CLASSE DE CRÉATION DE DOCUMENT XHTML

 Sources de la même categorie

OBTENIR LES TAUX DE CHANGE DU JOUR EN EUROS par oallais
Source avec Zip AFFICHER LES FILM EN SALLE par slhuilli
Source avec Zip Source avec une capture MINI-PROCESSEUR XPROC (PIPELINE XML) par ordiman85
Source avec Zip Source avec une capture XML MAPPING TO CLASS OBJECTS / CHARGEMENT / PARSING / MODIFI... par aKheNathOn
Source avec Zip Source avec une capture VIEWER POUR JALBUM SKIN CHAMELEON LIVRE D'OR par ym_trainz

 Sources en rapport avec celle ci

CLASSE PHP4 DE CONNEXION À UN SGBD par gr43
Source avec Zip VALIDATION DE FORMULAIRE (PHP4) par niteowl
Source avec Zip MOTEUR DE TEMPLATE XSL UTILISANT LA CLASSE XSLTPROCESSOR ET ... par codefalse
SOMMAIRE DÉROULANT par opossum_farceur
Source avec Zip [PHP4.3.X-DOMXML]-CREATION D'UN MOTEUR DE TEMPLATE GRACE A D... par jean84

Commentaires et avis

Commentaire de coucou747 le 16/08/2007 00:12:45 administrateur CS

tu peux en profiter pour faire en sorte que le code produit soit indente, du coup, c'est vraiment pas complique :)

moi j'avais pas fait $doc->CreateElement(, trouvant que cette facon de proceder etait certe interessante, mais trop peu souple si tu veux abstraire certaines choses, comme un champ de formulaire, tu aurais envie d'en faire un objet afficheable, donc : $a=new FormInputChose(); mais $doc->appendChild($a);

apres, c'est assez impressionnant, le respect du mode de fonctionnement DOM, t'es vraiment alle tres tres loin :)

passe ca au moins en initie...

ouais, j'ai lu le code, je n'ai pas teste (ayant une source comparable, je ne fais que comparer les codes...), joli travail en tout cas :)

tu devrais oublier php4, php5 est la depuis deja longtemps, il est meme passe sur la debian stable, alors bon :)

allez, c'est rare, mais je vais mettre 10/10

Commentaire de DoudouBidou le 23/06/2008 09:34:06 9/10

C'est exactement ce dont j'avais besoin, mon serveur de test étant en PHP5 alors que mon serveur de prod est encore en PHP4.
Par contre j'ai modifié légèrement ton script car il y avait un oubli, en effet createElement() accepte un paramètre value.
Ci-dessous la modif ligne 340

function _domxmlelement(&$doc, $name = null, $value = null) {
parent::_domxmlnode($doc, $name);
if ($value){
  $val = $doc->createTextNode($value);
  $this->appendChild($val);
}
}

Commentaire de abys le 04/09/2008 22:53:30

tu fais comment pour rechercher les liens d une page dans le but de modifier le href ?
merci

Commentaire de TheWeasel47 le 16/12/2010 14:57:42

Franchement j'ai vu l'arrivé de cette class ! Comme l'arrivé du Messi !
Je me voyais déja re-coder une class d'export.... et comme je suis féniant !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb domxml [ par djcal007 ] salut, j'ai un probl&#232;me pour ajouter,gr&#226;ce &#224; domxml, de nouveaux noeuds : voila mon fichier xml: &lt;?xml version="1.0"?&gt; &lt;root& Sockets [ par slhuilli ] Bonjour1. Quelqu'un aurait il un exemple SIMPLE d&#233;pouill&#233; de toutes lignes inutiles (ou alors bien comment&#233;es) pour utiliser les socket Dom XML [ par syndrael ] Bonjour Puis faire du DOM XML sous Linux ? Mon code sera-t-il 100% compatible avec celui de mon site ki tourne sous Windows ? Merci de me rassurer. S pb avec les accents lors de la génération d'un flux RSS(fichier xml) en utilisant domxml [ par maurimaure ] Bonjour, J'ai essay&#233; de g&#233;n&#233;rer un flux RSS&nbsp; en utilisant domxml, Mais j'ai un gros souci, mon navigateur se bloque sur les accen Migration PHP4 a PHP5 [ par laetitiadf ] Bonjour,j'essaye de migrer la version 4.3 de php vers la version 5 mais quand j'execute le php.exe il me dis qu'il ne trouve pas mmcache.dll alors qu' variable $_SERVER PHP4->PHP5 [ par aurelie_devplus ] Bonjour, Je programme en PHP (intranet) pour une entreprise depuis un petit moment. Sur mon serveur intranet, j'ai Apache 2.0 et PHP 4.3. Je me sers Générateur de chaine de date pour la fonction Date() php4 [ par MaX3315 ] Je viens de post&#233;e une source javascript ici : http://www.javascriptfr.com/code.aspx?ID=34855Il s'agit d'une interface g&#233;n&#233;rant les cha camembert en php4 [ par niko14 ] Une question les gars .et les filles.!! je voudrais faire un camembert sur un site sur lequel je travaille mais je travaille sou sphp4 est ce possible DOMXML et les fils ... [ par Teclis01 ] Bonjour ! Voila j ai eu un petit soucis et j ai trouv&#233; une solution mais ... elle est vraiment pas jolie jolie ^^ Alors voila ... qd je fais un g XML == MySQL ? [ par Teclis01 ] Bonjour, Je me suis lanc&#233; il y a peu dans la classe DOM XML mais il y a quelqques chose qui me parait vraiment etrange ...J'ai entendu dire et me


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,555 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales