PDA

View Full Version : [PHP]Convertire link dinamico in statico


gnappoman
06-08-2011, 19:21
Ciao ragazzi,
mi sono fatto questo script per evitare di fare trambusto quando devo installare pacchetti zip sul mio hosting.
Il mio script copia direttamente il pacchetto zip dal server sorgente a quello di destinazione e poi lo scompatta..

Ora, se gli dò in input un url del tipo http://www.miosito.com/ miofile.zip funziona
ma se gli dò un link dinamico tipo ad esempio http://download.simplemachines.org /index.php?thanks;filename=smf_2-0_install.zip

non funziona...
C'è un sistema per convertire via php questi link dinamici in statici?

Grazie!

ecco il mio script "upextract.php"

<section id='fileDownloader'> <article id='urlForm'> <form id='url' name='url' method='post' action=''> <label for='urlInput'>The file to be downloaded (URL with http://) zip only: </label> <input type='text' name='urlInput' id='urlInput' placeholder='URL' size='60' autofocus value="<?=($_POST['submit'])?$_POST['urlInput']:""?>" /> <br /> <input type='submit' value='Download & extract' name='submit' /> </form> </article> <?php if ($_POST['submit']): ?> <article id='downloadStatus'> <?php if (empty($_POST['urlInput'])): die("Please enter a valid download URL"); endif; $path = explode("/", $_POST['urlInput']); $fileName = $path[sizeof($path) - 1]; ?> <?php if (file_exists($fileName)): ?> This file already downloaded. <?php elseif (!copy($_POST['urlInput'], $fileName)): ?> Download failed. Make sure that the URL is correct. <?php else: ?> Download completed. File: <?php require_once('pclzip.lib.php'); echo $fileName; $archive = new PclZip($fileName); if ($archive->extract() == 0) die("<font color='red'>Error : Unable to unzip archive</font>"); $list = $archive->listContent(); echo "<br /> <br /><b>Extracted files</b><br />"; for ($i=0; $i<sizeof($list); $i++) { if(!$list[$i]['folder']) $bytes = " - ".$list[$i]['size']." bytes"; else $bytes = ""; echo "".$list[$i]['fileName']."$bytes<br />"; } echo "<br /><b>Tutto fatto</b><br />"; unlink('pclzip.lib.php'); unlink('upextract.php'); unlink($fileName); endif; ?> </article> <?php endif; ?> </section>

gnappoman
07-08-2011, 12:55
http://forum.html.it/forum/images/smilies/saggio.gif

SerMagnus
07-08-2011, 13:33
ci sarà qualche restrizione sulla lettura di file esterni

gnappoman
07-08-2011, 16:38
come sarebbe a dire scusa?

A me servirebbe un sistema in php che da:

www.sailcaxxo.com/ ?boh.php?ziocastoro.zip

mi trasformi il tutto in:

www.sailcaxxo.com/ postodovesitrovailfile/ ziocastoro.zip

gnappoman
10-08-2011, 13:39
Innanzitutto grazie delle risposte

ri scrivo il codice senza tag CODE così ci intendiamo meglio

Il discorso è semplice:
questa pagina in php mi serve quando ad esempio devo installare un nuovo joomla su un hosting evitando di scaricare lo zip, scompattarlo e uploadare i singoli files via ftp.
Con il mio script il pacchetto zip viene scaricato sull'hosting direttamente dal server di origine (del progetto joomla in questo caso) e poi estratto.
Il mio problema è che se nel form della mia paginetta ci scrivo:

www.indirizzo.com / posto dove sta il file / joomla.zip

funziona tutto,

ma con quelle porcherie di

www.indirizzo.com / index.php /?boohwihdwiedh?ziop.zip

non funziona...

Quindi mi chiedevo:

c'è un sistema in php per capire quale sia l'effettivo vero reale indirizzo di un file?

e cioè che io gli dò

www.indirizzo.com / index.php /?boohwihdwiedh?ziop.zip

e lui se lo traduce in

www.indirizzo.com / posto dove sta il file / joomla.zip

?

tipo wget con le virgolette (per chi mi intende!)
Ciao
http://forum.html.it/forum/images/smilies/saggio.gifhttp://forum.html.it/forum/images/smilies/saggio.gif
http://forum.html.it/forum/images/smilies/saggio.gif
http://forum.html.it/forum/images/smilies/saggio.gif
http://forum.html.it/forum/images/smilies/saggio.gif
http://forum.html.it/forum/images/smilies/saggio.gif






<section id='fileDownloader'><article id='urlForm'>
<form id='url' name='url' method='post' action=''>
<label for='urlInput'>The file to be downloaded (URL with http://) zip only: </label>
<input type='text' name='urlInput' id='urlInput' placeholder='URL' size='60' autofocus value="<?=($_POST['submit'])?$_POST['urlInput']:""?>" /><br />
<input type='submit' value='Download & extract' name='submit' /></form></article>
<?php if ($_POST['submit']): ?>
<article id='downloadStatus'>
<?php
if (empty($_POST['urlInput'])): die("Please enter a valid download URL"); endif;
$path = explode("/", $_POST['urlInput']);
$fileName = $path[sizeof($path) - 1];
?>
<?php if (file_exists($fileName)): ?>
This file already downloaded.
<?php elseif (!copy($_POST['urlInput'], $fileName)): ?>
Download failed. Make sure that the URL is correct.
<?php else: ?>
Download completed. File:
<?php
require_once('pclzip.lib.php');
echo $fileName;
$archive = new PclZip($fileName);
if ($archive->extract() == 0)
die("<font color='red'>Error : Unable to unzip archive</font>");
$list = $archive->listContent();
echo "<br /> <br /><b>Extracted files</b><br />";
for ($i=0; $i<sizeof($list); $i++) {
if(!$list[$i]['folder'])
$bytes = " - ".$list[$i]['size']." bytes";
else
$bytes = "";
echo "".$list[$i]['fileName']."$bytes<br />";
}
echo "<br /><b>Tutto fatto</b><br />";
unlink('pclzip.lib.php');
unlink('upextract.php');
unlink($fileName);
endif; ?>
</article>
<?php endif; ?>
</section>