upload PDF chronopost avec curl

#1
Bonjour,
je partage ce bout de code qui a l'air de bien fonctionner pour ma part, pour ceux qui auraient besoin de récupérer un fichier PDF généré par une api Chronopost externe (typiquement pour l'envoi de colis avec impression d'étiquette Chronopost).

Bien entendu, avec une seule ligne wget j'aurai pu m'en sortir mais voilà j'ai besoin que cela passe par PHP pour activer la demande et sur un serveur mutualisé, la commande php exec reste toujours interdite.

Mais peut être que vous y verrez des options inutiles ou des améliorations à apporter, ce qui peut m’intéresser.

$urlPDF = 'https://dns/wp-json/chronopost?token=tokenchronopost=';

$timeout = 10;
$fp = fopen("test.pdf", "w");
$ch = curl_init();

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_URL, $urlPDF);

if (preg_match('`^https://`i', $urlPDF))
{ // pour les liens HTTPS
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // Temps max d'execution
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // Temps a attendre durant la tentative de connexion

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Retourne le transfert sous forme de chaine
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // suit les headers contenant une redirection par Location:

$resultat = curl_exec ($ch);

fwrite($fp, $resultat);

curl_close($ch);
fclose($fp);
 
Haut