Je travaille avec un client pour obtenir un gzip depuis son webservice. Je suis en mesure d'obtenir une réponse à mon appel suivant:Fichier de SOAP, comment économiser?
$response = $client->call('branchzipdata', $param);
$filename = "test.gzip";
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $response) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
Maintenant, quand je tente d'écrire qu'un fichier, tel que « test.gzip », je suis incapable de l'ouvrir ensuite ... plus probablement parce que Je fais quelque chose d'horrible. Toute idée serait appréciée.
EDIT:
Pour une raison quelconque, je gardais le fichier comme « .gzip » au lieu de « .gz » ... Donc, pour l'avoir, je travaille sont maintenant:
$response = $client->call('call', $param);
$content = base64_decode($response);
$filename = "output_zip.gz";
if (!$handle = fopen($filename, 'w')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $content) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
fclose($handle);
echo system("gzip -d $filename");
Désolé, j'ai oublié d'inclure ce morceau de code, mais je suis en train de fermer la poignée. À partir de ce que j'ai lu, je pense que je m'approche de la mauvaise façon. Je dois encore faire face à du savon. – Thomas
Que se passe-t-il lorsque vous essayez de lire le fichier? Pouvez-vous l'ouvrir, mais ce n'est pas un fichier gzip? Est-il encodé en base64 par hasard? –
Je ne suis plus au travail, mais oui, il est codé en base64. La partie qui m'a troublé était de le décoder avant d'écrire le contenu sur test.gzip ou de décoder le contenu par la suite? Je suppose que je suis juste confus quand il s'agit de gérer la réponse que je reçois de la demande de savon. Merci de votre aide! – Thomas