Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Poo PHP et version de Php - SpreadsheetExport

6 réponses
Avatar
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).

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 ?

6 réponses

Avatar
Mickael Wolff
On 25/03/11 13:18, Newsgroups wrote:
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 ?
Avatar
Newsgroups
« Ç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
Avatar
Mickael Wolff
On 25/03/11 13:18, Newsgroups wrote:
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.
Avatar
Mickael Wolff
On 26/03/11 17:56, Newsgroups wrote:
« Ç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é.

Mais sinon, pour être plus précis, le "marche pas" signifie :
- pas de message d'erreur


Donc ça marche © :D

- 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?)

- à l'ouverture du fichier avec openOffice, j'ai un message d'erreur :
"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 ?

- si je décompresse le fichier ods, j'ai plusieurs fichiers :
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.
Avatar
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
Avatar
Mickael Wolff
On 28/03/11 22:36, Newsgroups wrote:
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



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).