Une idée de comment je pourrais débugger ceci ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Une idée de comment je pourrais débugger ceci ?

Re: Une idée de comment je pourrais débugger ceci ?

par devcphp » 25 nov. 2009, 10:51

Le probleme se produit à l'ouverture du fichier qu'il ne trouve pas. j'ai souvent recontré ce probleme avec l'utilisation des com word.application.
De plus il m'etait difficile de comprendre pourquoi car aucune erreur n'etait generé par php ce qui compliquait nettement le probleme.

A partir du moment ou j'ai utilisé la fonction realpath tous mes problemes etaient resolues.
<?php
$input = "c:\mon_document_visio.VSD";
$visio = new COM("visio.application");
$visio->Documents->Open(realpath($input));
$visio->Quit();
$visio = null;
echo "Done.\n";
?>


Essaye mais je pense que ca devrait resoudre tes problemes !

Re: Une idée de comment je pourrais débugger ceci ?

par zeus » 23 nov. 2009, 18:05

Je ne sais pas si ça rentre dans ton cas de figure, mais je sais que Windows à du mal avec les noms trop long.
Est-ce que le chemin complet (chemin + nom de fichier) ne dépasserais pas 255 caractères ?

Une idée de comment je pourrais débugger ceci ?

par Mordread » 23 nov. 2009, 15:12

- Infos : je suis en PHP 5.3.0 sous WAMP.
- But : je cherche à automatiser des composants Microsoft Office (Microsoft Visio dans cet exemple.)

Voilà pour l'intro rapide :) En version longue, je lance une instance de Visio et la pilote par les objets COM :
$objVisio = new COM("visio.application");
...
Et tout va pour le mieux dans le meilleur des mondes, voilà, merci ! :D

Bon en fait, non, tout ne va pas bien... Et je n'arrive pas à trouver comment debugger mon problème que voici via un script de test ultra basique :
<?php
$input = "c:\mon_document_visio.VSD";
$visio = new COM("visio.application");
$visio->Documents->Open($input);
$visio->Quit();
$visio = null;
echo "Done.\n";
?>
Comme vous le voyez, ce script ne sert à rien : il ouvre un document visio dans Visio et ferme l'appli... Mais il démontre bien mon pbr !

- sur tous les documents que j'ai, sauf un, ça marche.
- sur UN document (me demandez pas ce qu'il a de spécial...) ça plante : Visio reste en mémoire, ne se termine pas, ne rend pas la main à PHP qui freeze à son tour. MAIS ça ne freeze qu'en HTTP... SI je lance le script en ligne de commande (c:\php\php.exe toto.php), ça marche sans failles dans 100% des cas...

Vu que c'est un peu tout ou rien, j'ai du mal à diagnostiquer le pourquoi du plantage... Une idée de comment faire ?

Merci ;)