Η δημιουργία xml αρχείου με τη μέθοδο POST είναι πολλές φορές αναγκαία όταν η εταιρεία που μας το προμηθεύει το έχει κλειδωμένο για λόγους ασφαλείας. Με τη μέθοδο POST και αν έχουμε στη διάθεση μας το email και τον κωδικό που απαιτείται, έχουμε τη δυνατότητα να κάνουμε generate ένα αρχείο xml, από το link που θα μας δωθεί.
Δημιουργούμε ένα νέο αρχείο με κατάληξη php στο home directory του server μας. Συνήθως είναι ο φάκελος (public_html για συστήματα βασισμένα σε περιβάλλον cPanel και CyberPanel – httpdocs για συστήματα βασισμένα σε Plesk).
Εκεί αντιγράφουμε απλά τον παρακάτω κώδικα όπου αντικαθιστούμε στη θέση του demo url (“to-url-sas”) το πραγματικό url που μας έχει δοθεί από τον συνεργάτη μας κι συμπληρώνουμε το email (to-email-sas) & κωδικό (o-kodikos-sas) πουν απαιτείται για την ταυτοποίηση. Αποθηκεύουμε και τρέχουμε το αρχείο, οπότε δημιουργείται αυτόματα το αρχείο arxeio.xml στο ίδιο σημείο με το αρχείο php που δημιουργήσαμε.
Μπορείτε να χρησιμοποιήσετε ένα cron job να τρέχει ανά κάποιο διάστημα (όσο συχνά θέλετε) έτσι ώστε να έχετε πάντα την πιο πρόσφατη έκδοση του αρχείου σας.
<?php
ini_set('max_execution_time', 0);
function getRequest()
{
$url = "to-url-sas";
$zip_file = "downloadfile.zip";
$zip_resource = fopen($zip_file, "w");
$ch_start = curl_init();
curl_setopt($ch_start, CURLOPT_URL, $url);
curl_setopt($ch_start, CURLOPT_FAILONERROR, true);
curl_setopt($ch_start, CURLOPT_HEADER, 0);
curl_setopt($ch_start, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch_start, CURLOPT_AUTOREFERER, true);
curl_setopt($ch_start, CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch_start, CURLOPT_TIMEOUT, 10);
curl_setopt($ch_start, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch_start, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch_start, CURLOPT_FILE, $zip_resource);
$page = curl_exec($ch_start);
if(!$page)
{
echo "Error :- ".curl_error($ch_start);
}
curl_close($ch_start);
$zip = new ZipArchive;
$extractPath = "DownloadFolder";
if($zip->open($zip_file) != "true")
{
echo "Error :- Unable to open the Zip File";
}
$zip->extractTo($extractPath);
$zip->close();
}
function postRequest()
{
$url = "to-url-sas";
$zip_file = "arxeio.xml";
$zip_resource = fopen($zip_file, "w");
$ch_start = curl_init();
curl_setopt($ch_start, CURLOPT_URL, $url);
curl_setopt($ch_start, CURLOPT_POST, 1);
curl_setopt($ch_start, CURLOPT_POSTFIELDS,"email=to-email-sas&password=o-kodikos-sas");
curl_setopt($ch_start, CURLOPT_FAILONERROR, true);
curl_setopt($ch_start, CURLOPT_HEADER, 0);
curl_setopt($ch_start, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch_start, CURLOPT_AUTOREFERER, true);
curl_setopt($ch_start, CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch_start, CURLOPT_TIMEOUT, 100);
curl_setopt($ch_start, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch_start, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch_start, CURLOPT_FILE, $zip_resource);
$page = curl_exec($ch_start);
print_r($page);
if(!$page)
{
echo "Error :- ".curl_error($ch_start);
}
curl_close($ch_start);
/*
$zip = new ZipArchive;
$extractPath = "PostDownloadFolder";
if($zip->open($zip_file) != "true")
{
echo "Error :- Unable to open the Zip File";
}
$zip->extractTo($extractPath);
$zip->close();*/
}
postRequest();
?>