[PHP] laatste paar bytes lezen/downloaden bestand?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • elvis84
  • Registratie: Juli 2001
  • Niet online

elvis84

Has Left The Building

Topicstarter
Is het mogelijk om de laatste x bytes van een bestand te downloaden, of alleen te lezen via een php script?

en dan bedoel ik van een bestand op een andere server. Het is namelijk niet de bedoeling dat ik heel het bestand moet downloaden, want ik gebruik alleen de laatste x bytes.

Ik wil het dus zo hebben, dat mijn server alleen de laatste x bytes van een bestand download/leest wat op een ANDERE server staat, en nix meer!!!

bestaat zoiets???

Little Less Conversation, Little More Action Please!!!


Acties:
  • 0 Henk 'm!

Verwijderd

Wat wil je er dan mee bereiken als ik vragen mag?

Acties:
  • 0 Henk 'm!

  • elvis84
  • Registratie: Juli 2001
  • Niet online

elvis84

Has Left The Building

Topicstarter
ow, ik wil eigenlijk een id3tag lezer maken. En id3v1 staat in de laatste 128 byte... :?
id3v2 staat wel in de eerste x dacht ik...

Little Less Conversation, Little More Action Please!!!


Acties:
  • 0 Henk 'm!

Verwijderd

misschien helpt dit je iets:

PHP:
1
2
3
$fp = fopen($filename, "r"); 
fseek($fp, filesize($filename) - 128); 
$id3 = fread($fp, 128);


maar ik denk dat dit hier blijer mee zal zijn:
http://www.hotscripts.com/Detailed/10092.html

en nog een linkie met info/source:
http://leknor.com/code/php/view/beta/class.id3v2.php.txt

[ Voor 42% gewijzigd door Verwijderd op 17-12-2002 16:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik wil je ook geen werk uit handen nemen maar hier is de project url:
http://sourceforge.net/projects/getid3/

Acties:
  • 0 Henk 'm!

  • elvis84
  • Registratie: Juli 2001
  • Niet online

elvis84

Has Left The Building

Topicstarter
dat getid3 dat heb ik al geprobeerd, maar die download eerst heel het mp3tje...en dat kost nogal veel dataverkeer als ik strax 10.000 mp3tjes ofzo heb he :D

dat stukje script wat NiHiels me gaf download ook het hele mp3tje, ennuh, die link naar leknor.com die kan niets lezen van andere servers


owja, die link die pietertje1983 me gaf is hetzelfde als die hotscripts link van NiHiels


er moet toch een manier voor zijn om alleen de laatste paar bytes te laten lezen. Die andere sites hebben het ook zo heb ik me ooit laten vertellen, maar ze willen mij niets vertellen over hoe ze het doen [en verkopen ook niet, alleen voor belachelijk hoge bedragen]

Little Less Conversation, Little More Action Please!!!


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 15:23

me1299

$ondertitel

elvis84 schreef op 17 December 2002 @ 16:18:
dat getid3 dat heb ik al geprobeerd, maar die download eerst heel het mp3tje...en dat kost nogal veel dataverkeer als ik strax 10.000 mp3tjes ofzo heb he :D

dat stukje script wat NiHiels me gaf download ook het hele mp3tje, ennuh, die link naar leknor.com die kan niets lezen van andere servers


owja, die link die pietertje1983 me gaf is hetzelfde als die hotscripts link van NiHiels


er moet toch een manier voor zijn om alleen de laatste paar bytes te laten lezen. Die andere sites hebben het ook zo heb ik me ooit laten vertellen, maar ze willen mij niets vertellen over hoe ze het doen [en verkopen ook niet, alleen voor belachelijk hoge bedragen]
Ik ben bang dat het niet anders kan. Aangezien winamp ook al heel lang moet ratelen bij een mp3 van een paar honderd mb vermoed ik dat je niet achteraan kan weglezen.

Alhoewel je met downloaden wel kan resumen op een bepaald punt :?

naja ik zou het zo iig niet weten ;)

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

DeathKnight schreef op 17 december 2002 @ 16:38:

Alhoewel je met downloaden wel kan resumen op een bepaald punt :?


FTP ondersteund wel een resume. Vandaar dat downloaden (via ftp dus) wel een resume ondersteuning heeft. AFAIK heeft HTTP dit niet, dus is het niet mogenlijk om dit via HTTP binnen te halen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

je kan bij een http-request wel een bytes-range opgeven
zie: RFC 2616 (http1.1)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
14.35.2 Range Retrieval Requests

   HTTP retrieval requests using conditional or unconditional GET
   methods MAY request one or more sub-ranges of the entity, instead of
   the entire entity, using the Range request header, which applies to
   the entity returned as the result of the request:

      Range = "Range" ":" ranges-specifier

   A server MAY ignore the Range header. However, HTTP/1.1 origin
   servers and intermediate caches ought to support byte ranges when
   possible, since Range supports efficient recovery from partially
   failed transfers, and supports efficient partial retrieval of large
   entities.

   [..]

[ Voor 74% gewijzigd door thomaske op 17-12-2002 16:55 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben het ook eens aan het testen

kep een post commando met deze regel erbij

"Range: 1-500\r\n".

waarom werkt dat niet? Ben ik scheel? 8)7
Denk het wel want geloof dat ik vanalles mis

[ Voor 19% gewijzigd door Verwijderd op 17-12-2002 17:05 ]


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

Verwijderd schreef op 17 December 2002 @ 17:03:
Ik ben het ook eens aan het testen

kep een post commando met deze regel erbij

"Range: 1-500\r\n".

waarom werkt dat niet? Ben ik scheel? 8)7
Denk het wel want geloof dat ik vanalles mis
Ik weet niet wat je precies wilt testen, maar als je iets wilt downloaden, zou ik het GET commando gebruiken.

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

Kep dit

<?
$host = "script01.tmf.nl";
$post = "/content.php";
$remote = fsockopen("$host", 80, &$errno, &$errstr, 30);
$querystr = "page=chat/content";
$lunghezza = strlen($querystr);
$post =(
"GET $post HTTP/1.0\r\n".
"Host: $host\r\n".
"Range: 1-500\r\n".
"Referer: http://script01.tmf.nl/content.php\r\n".
"Content-type: application/x-www-form-urlencoded\r\n".
"Content-length: $lunghezza\r\n\r\n".
"$querystr\r\n\r\n"
);
fputs($remote, $post);


while(!feof($remote)){
$bbb = fgets($remote,4096);
$ccc.="$bbb";
}

print $ccc;

?>

Hij print nog alles

Acties:
  • 0 Henk 'm!

Verwijderd

A server MAY ignore the Range header. However, HTTP/1.1 origin
servers and intermediate caches ought to support byte ranges when
possible, since Range supports efficient recovery from partially
failed transfers, and supports efficient partial retrieval of large
entities.
misschien die eens veranderen ????

lekker handig btw $aaa, $bbb $ccc, zegt misschien iets over je style.....

[ Voor 10% gewijzigd door Verwijderd op 17-12-2002 18:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Die $aaa enz da's goed..ff die 1.1 doen jah idd..foutje

Acties:
  • 0 Henk 'm!

Verwijderd

Doet ut dus ook nie :|

Acties:
  • 0 Henk 'm!

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Verwijderd schreef op 17 December 2002 @ 17:35:
<?
[...]
$post =(
"GET $post HTTP/1.0\r\n".
"Host: $host\r\n".
"Range: 1-500\r\n".
"Referer: http://script01.tmf.nl/content.php\r\n".
"Content-type: application/x-www-form-urlencoded\r\n".
"Content-length: $lunghezza\r\n\r\n".
"$querystr\r\n\r\n"
);
[...]
Of je doet GET, of je doet POST, maar niet allebei tegelijk :). Als je een GET doet geef je je variabelen achter GET mee (GET /page?x=blah HTTP/1.1) en is de lege regel na je headers het eind van je request. Zoals jij het doet ka nook wel maar dan moet je POST gebruiken en geen enters na de post data ($querystr) zetten.

Dit werkt wel volgens mij:
code:
1
2
3
4
GET /file HTTP/1.1
Host: host
Range: bytes=3-8
Connection: close

edit: Voor de laatste x bytes kan je ook bytes=-x gebruiken.

[ Voor 16% gewijzigd door madwizard op 17-12-2002 19:58 ]

www.madwizard.org


Acties:
  • 0 Henk 'm!

Verwijderd

Dat werkt dus ook nie :S dan blijft ie de hele tijd loaden..

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

De host moet dus HTTP/1.1 ondersteunen. En blijkbaar doettie dat niet..

[ Voor 7% gewijzigd door thomaske op 17-12-2002 20:55 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

Oke thnx voor de hulp :)

  • elvis84
  • Registratie: Juli 2001
  • Niet online

elvis84

Has Left The Building

Topicstarter
hmmz, ik kom er toch niet uit...

als ik dat deel van madwizard gebruik, dan duurt het wel 1 minuut voordat ik een deel van een bestand heb opgehaald. Het script doet gewoon niets...hij download niet het hele bestand, want dat is maar 1kb groot, en dat kan nooit zo lang duren!

iemand nog ervaring hiermee ofzo???

iig iedereen die tot nu toe heeft gereageerd bedankt!

Little Less Conversation, Little More Action Please!!!


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

Makkelijkste is om gewoon even te testen door naar poort 80 van de server te telnetten, en dan je commando's uitvoeren.. Je ziet dan precies wat je terugkrijgt..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."

Pagina: 1