Discussion:
Poo PHP et version de Php - SpreadsheetExport
(trop ancien pour répondre)
Newsgroups
2011-03-25 13:18:47 UTC
Permalink
Bonjour,

J'ai un souci Php et j'aurais besoin de votre aide.
J'utilise une librairie me permettant de générer des fichiers "Open
Document Spredsheets" (lib SpreadsheetExport).

En local mon script fonctionne (php -v : PHP 5.2.4-2ubuntu5.14)
En prod. ça ne fonctionne pas (php -v : PHP 5.3.3-7)


Mon code php est de ce genre :
$export = new SpreadsheetExport();
$export->AddColumn("string", 2);
$export->AddColumn("string", 2);
$export->AddColumn("string", 2);
$export->AddRow(array("test", "", "", "", ""));
print_r($export);

En local le print_r retourne ce genre d'objet :
SpreadsheetExport Object
(
[columns:private] => Array(... ... ...

En prod. le print_r retourne ce genre d'objet :
SpreadsheetExport Object
(
[columns:SpreadsheetExport:private] => Array(... ... ...


Je pense que ca vient de la version de PHP.. mais comment m'en sortir ?
Mickael Wolff
2011-03-25 17:27:42 UTC
Permalink
Post by Newsgroups
En local mon script fonctionne (php -v : PHP 5.2.4-2ubuntu5.14)
En prod. ça ne fonctionne pas (php -v : PHP 5.3.3-7)
« Ça marche pas » n'est pas pertinent.
Quel est le résultat attendu ? Quel est le résultat obtenu ? Quels
sont les messages d'erreur éventuel ?
Newsgroups
2011-03-26 17:56:08 UTC
Permalink
Post by Mickael Wolff
« Ça marche pas » n'est pas pertinent.
oui, en fait, je m'en fou un peu de savoir que ça ne marche pas.. mon
but est surtout de comprendre pourquoi l'objet Php est différent selon
la version.

Mais sinon, pour être plus précis, le "marche pas" signifie :
- pas de message d'erreur
- j'obtiens bien un fichier *.ods téléchargeable (y'a les entetes qui
vont bien)
- à l'ouverture du fichier avec openOffice, j'ai un message d'erreur :
"impossible d'ouvrir le fichier 'xxx.ods' : il est défectueux."
- si je décompresse le fichier ods, j'ai plusieurs fichiers :
content.xml, mimetype et un dossier META-INF ce dernier contenant
manifest.xml
Mickael Wolff
2011-03-26 22:32:13 UTC
Permalink
Post by Newsgroups
Post by Mickael Wolff
« Ça marche pas » n'est pas pertinent.
oui, en fait, je m'en fou un peu de savoir que ça ne marche pas.. mon
but est surtout de comprendre pourquoi l'objet Php est différent selon
la version.
Parce que ce n'est pas la même version. :)

Plus sérieusement, avec une version 5.3, les namespace furent
introduits. Le bricolage est plus ou moins heureux, et apporte son lot
de pièges, mais c'était une fonctionnalité attendue depuis bien
longtemps. Et vu que c'est quand même une grosse fonctionnalité qui a
abattu pas mal de cloisons, il n'est pas étonnant qu'il y ait des
régression (même si PHP a des tests unitaires, ils ne couvrent pas tout
les cas d'usage).

Au delà de l'ajout de fonctionnalité, il se peut que le script
initiale dépendant d'un bogue de PHP, qui a été corrigé.
Post by Newsgroups
- pas de message d'erreur
Donc ça marche © :D
Post by Newsgroups
- j'obtiens bien un fichier *.ods téléchargeable (y'a les entetes qui
vont bien)
Quelles en-têtes ? (HTTP, Zip, fichiers dans l'ODS?)
Post by Newsgroups
"impossible d'ouvrir le fichier 'xxx.ods' : il est défectueux."
Effectivement, ce n'est pas un message très parlant. Peut-être
existe-t-il un outil qui permet de vérifier les fichiers OpenDocument ?
Post by Newsgroups
content.xml, mimetype et un dossier META-INF ce dernier contenant
manifest.xml
Il semblerait donc que le script ou PHP a un bogue. Bon courage :)

Mais je vais y jeter un coup d'œil.
Mickael Wolff
2011-03-26 22:32:13 UTC
Permalink
Post by Newsgroups
Bonjour,
J'ai un souci Php et j'aurais besoin de votre aide.
J'utilise une librairie me permettant de générer des fichiers "Open
Document Spredsheets" (lib SpreadsheetExport).
Au fait, le lien vers le script que tu utilises serait le bienvenue.
Newsgroups
2011-03-28 21:36:05 UTC
Permalink
Post by Mickael Wolff
Post by Newsgroups
J'ai un souci Php et j'aurais besoin de votre aide.
J'utilise une librairie me permettant de générer des fichiers "Open
Document Spredsheets" (lib SpreadsheetExport).
Au fait, le lien vers le script que tu utilises serait le bienvenue.
pas simple à retrouver... même pas dans les scripts ! la voilà tout de
même :
http://sourceforge.net/projects/spreadsheetexpo/files/
http://blog.fusonic.net/2009/02/export-spreadsheet-in-odscsv-format-with-php5/#more-130
Mickael Wolff
2011-03-29 10:23:01 UTC
Permalink
Post by Newsgroups
pas simple à retrouver... même pas dans les scripts ! la voilà tout de
http://sourceforge.net/projects/spreadsheetexpo/files/
http://blog.fusonic.net/2009/02/export-spreadsheet-in-odscsv-format-with-php5/#more-130
C'était bien celui-là sur lequel j'étais tombé.

Chez moi ça marche pas © :)
En fait, le script déclenche un warning à chaque utilisation de
SimpleXML. Le premièr avertissement déclenché lors de l'utilisation du
script d'exemple est :
== 8< ==
PHP Warning: SimpleXMLElement::addAttribute(): Attribute requires
prefix for namespace in
/home/dev/foreign/spreadsheetexport-0.1.0/lib/SpreadsheetExport.php on
line 243
PHP Stack trace:
PHP 1. {main}()
/home/dev/foreign/spreadsheetexport-0.1.0/examples/example.php:0
PHP 2. SpreadsheetExport->DownloadODF()
/home/dev/foreign/spreadsheetexport-0.1.0/examples/example.php:33
PHP 3. SpreadsheetExport->GetODF()
/home/dev/foreign/spreadsheetexport-0.1.0/lib/SpreadsheetExport.php:144
PHP 4. SimpleXMLElement->addAttribute('media-type',
'application/vnd.oasis.opendocument.spreadsheet',
'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0')
/home/dev/foreign/spreadsheetexport-0.1.0/lib/SpreadsheetExport.php:243
== >8 ==

L'ensemble des avertissement suivant ce premier ont la même tête.
Du coup, ton problème n'a rien à voir avec l'implémentation de
l'objet dans PHP. Je penche plutôt sur un SimpleXML plus tatillon. Je
t'encourage à afficher les erreurs (display_errors) et à afficher toutes
les erreurs, warning, deprecated, etc (error_reporting).

Continuer la lecture sur narkive:
Loading...