/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Upload fil FRA php exec(wget...)
Fra : Leif Neland


Dato : 05-03-08 13:30

Jeg vil automatisere noget...

Jeg har noget php, der via wget logger ind på en fremmed side. (webpack)

Det fungerer fint at post'e variable, og parse resultatet.

Men nu vil jeg gerne uploade en fil til websiden, eller rettere jeg vil
trække data ud af min database, og uploade data som en csv-fil til det
fremmede site.

Hvorledes kan jeg gøre det? Kan jeg tilføje csv-data til post-data til wget,
eller skal jeg bruge noget andet end
exec("wget...) ?

Leif

PS, her er wget-funktionen:

function matchurl($url,$data,$regexp) {
$cmd= "/usr/bin/wget -S --save-cookies /tmp/cookies1 --load-cookies
/tmp/cookies1 --keep-session-cookies --user-agent='Mozilla/4.0 (compatible;
MSIE 6.0; Windows NT 5.0; T312461; .NET CLR 2.0.50727)' ";
if ($data>"") $cmd .= " --post-data='".$data."'";
$cmd .=" '".$url."' -O - ";
flush();
exec ($cmd,$return_message_array, $return_number);

flush();
for ($i = 0; $i < count($return_message_array); $i++) {
$results = $results.$return_message_array[$i];
}
if (preg_match($regexp,$results,$matches))
{return $matches[1];}
else
{ echo "<pre>".$results."</pre>";
return "";}
}

Kaldes f.ex således
$data="brugernavn=hest&password=pony";
$res=matchurl($url,$data,"/window.open\(\"(.*?)\"/");



 
 
Kasper Johansen (05-03-2008)
Kommentar
Fra : Kasper Johansen


Dato : 05-03-08 14:20

Leif Neland skrev:
> Men nu vil jeg gerne uploade en fil til websiden, eller rettere jeg vil
> trække data ud af min database, og uploade data som en csv-fil til det
> fremmede site.
>
> Hvorledes kan jeg gøre det? Kan jeg tilføje csv-data til post-data til wget,
> eller skal jeg bruge noget andet end
> exec("wget...) ?

Hej Leif.


Jeg har skrevet en funktion til at uploade data med i PHP. Du kan bruge
den eller skrive den om.

Du kan finde den her:
http://knjphpframework.cvs.sourceforge.net/*checkout*/knjphpframework/knjphpframework/functions_http_post.php?revision=1.1

http_post_file("mitdomaene.dk", 80, "upload.php", "/var/minfil.zip");


Det er et stykke tid siden, at jeg selv har brugt den, men jeg håber, at
du kan bruge den til noget


--
Med venlig hilsen
Kasper Johansen

Leif Neland (05-03-2008)
Kommentar
Fra : Leif Neland


Dato : 05-03-08 15:00


"Kasper Johansen" <kaspernj@gmail.com> skrev i en meddelelse
news:47ce9de4$0$90269$14726298@news.sunsite.dk...
> Leif Neland skrev:
> > Men nu vil jeg gerne uploade en fil til websiden, eller rettere jeg vil
> > trække data ud af min database, og uploade data som en csv-fil til det
> > fremmede site.
> >
> > Hvorledes kan jeg gøre det? Kan jeg tilføje csv-data til post-data til
wget,
> > eller skal jeg bruge noget andet end
> > exec("wget...) ?
>
> Hej Leif.
>
>
> Jeg har skrevet en funktion til at uploade data med i PHP. Du kan bruge
> den eller skrive den om.
>
> Du kan finde den her:
>
http://knjphpframework.cvs.sourceforge.net/*checkout*/knjphpframework/knjphpframework/functions_http_post.php?revision=1.1
>
> http_post_file("mitdomaene.dk", 80, "upload.php", "/var/minfil.zip");
>
>
> Det er et stykke tid siden, at jeg selv har brugt den, men jeg håber, at
> du kan bruge den til noget
>

Det ser lovende ud. Så skal jeg bare finde ud af, hvordan jeg sender cookies
med også...

Leif

>
> --
> Med venlig hilsen
> Kasper Johansen



Stig Johansen (05-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 05-03-08 18:26

Kasper Johansen wrote:

> Jeg har skrevet en funktion til at uploade data med i PHP. Du kan bruge
> den eller skrive den om.
>
> Du kan finde den her:
>
http://knjphpframework.cvs.sourceforge.net/*checkout*/knjphpframework/knjphpframework/functions_http_post.php?revision=1.1
>

Hov - den giver jo svaret på mit spørgsmål om 'Useragent' m.m i min anden
tråd, takker indirekte.

Men i forhold til Leif's spørgsmål, skal han nok over i multipart/form-data,
eller hvad det nu hedder.

Nu har jeg fået fjernet citat fra Leif, men det her er så til Leif:

Hvis du vil efterligne den funktion hvor man vælger en fil i browseren og
sender til serveren, skal du lave en POST med multipart/form-data.

I forbindelse med diverse HTTP 'ting' har jeg gennem mange år brugt
'proxytrace' til at aflure opbygningen af HTTP'et.
Hvis du går ind på denne side:
<http://www.pocketsoap.com/tcptrace/>
Og kigger efter proxyTrace, så er det en lille proxy .exe fil, der blot skal
startes op.
Ved at konfigurere browseren til proxy på localhost, port 8080, kan du se
hvad der sker når du uploader en fil.
Inklusive headere og det hele.

Nu kender jeg ikke PHP, men med en trace og udvidelse af Kaspers funktion,
burde det være 'ligetil'.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste