Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2007, 16h30   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 23
Points : 3
Points : 3
Par défaut [DOM] Code ne fonctionnant pas sur d'autres ordi

Suite à ma demande d'aide résolu sur ce post :

http://www.developpez.net/forums/sho...d.php?t=427155

Je me permet de reposter car je me trouve devant un problème auquel je ne sais encore que faire (désolé :/)

Ma page PHP qui prend mon fichier ZIP pour l'ouvrir, lire le fichier XML, ajouter une ligne et afficher le fichier XML dans le navigateur marche très bien sur ma machine.

Mais dès que je change de poste une erreur de ce type apparait :

Fatal error: Call to undefined method domdocument::insert_before() in C:\chemin\fichier.php on line 17

Voici la ligne de code 17 :

$dom->insert_before($pi, $dom->document_element());

Après quelques recherches j'ai vu qu'avec les mises à jour DOMXML et PHP, la commande insert_before pouvait s'écrire insertBefore et même après cette modification, même message :

Fatal error: Call to undefined method domdocument::insertBefore() in C:\chemin\fichier.php on line 17


Sachant que les fonctions zip et domxml sont bien activées, avez-vous une idées de comment pourrais-je résoudre ce problème ?

Merci d'avance ! Je suis là si jamais je n'ai pas été assez explicite
Fatjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h38   #2
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
En PHP4, on trouve insert_before() avec DOMXML alors qu'en PHP5, on trouve insertBefore() avec DOM !
__________________
Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 09h58   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 23
Points : 3
Points : 3
Il y a donc une autre fonction DOM ou XML à activer pour que cela puisse marcher ??
Fatjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 10h44   #4
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

il est normal que PHP proteste : insert_before() est une méthode de DomNode, pas de DomDocument.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 12h08   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 23
Points : 3
Points : 3
Oui, mais le fichier actuel que j'ai marche impeccablement sur mon ordinateur, c'est juste que ça ne fonctionne pas ailleur...

Alors pourquoi juste sur le mien ?

Le code entier est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Contrôle du formulaire
$zip = $_POST['zip']; 
 
// Manipulation du fichier Zip
if (($zip = zip_open($_FILES['file']['tmp_name'])) === FALSE) {
    die("Erreur de lecture de l'archive");
}
$entree = zip_read($zip);
if (!preg_match('~\.xml$~i', zip_entry_name($entree))) {
    die("Le fichier contenu dans l'archive ne semble pas être un fichier XML");
}
zip_entry_open($zip, $entree);
$contenu = zip_entry_read($entree, zip_entry_filesize($entree));
zip_entry_close($entree);$dom = domxml_open_mem($contenu);
$pi = $dom->create_processing_instruction('xml-stylesheet', 'type="text/xsl" href="formeROI.xsl"');
$dom->insert_before($pi, $dom->document_element());
zip_close($zip);
header('Content-type: text/xml');
echo $dom->dump_mem();
?>
Fatjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 12h23   #6
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
oups, j'ai dit n'importe quoi : DOMDocument héritant de DOMNode, cette méthode lui est évidemment accessible... La réponse d'Alain est la bonne, tu as deux versions différentes de PHP sur les deux postes.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h35.


 
 
 
 
Partenaires

Hébergement Web