Toon posts:

[php] File size

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

Verwijderd

Topicstarter
He,
Ik wil dus van filmpjes de file size eruit halen nu heb ik op php.net gevonden dat dit kan met file size maar kan dit ook als het bestand extern is dus ergens anders staat?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Nee.

Verwijderd

Topicstarter
Oww das kut. Hmm is er dan nog een andere manier voor omdat te omzeilen.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zondag 02 juni 2002 13:59 schreef Piete het volgende:
Oww das kut. Hmm is er dan nog een andere manier voor omdat te omzeilen.
Alleen de HTTP-header opvragen en die uitlezen?

Verwijderd

Topicstarter
Hmm oke ik ga er even naar kijken op php/net.

Verwijderd

Uit RFC 1945: Hypertext Transfer Protocol -- HTTP/1.0
10.4 Content-Length

The Content-Length entity-header field indicates the size of the Entity-Body, in decimal number of octets, sent to the recipient or, in the case of the HEAD method, the size of the Entity-Body that would have been sent had the request been a GET.

Content-Length = "Content-Length" ":" 1*DIGIT

An example is

Content-Length: 3495

Applications should use this field to indicate the size of the Entity-Body to be transferred, regardless of the media type of the entity. A valid Content-Length field value is required on all HTTP/1.0 request messages containing an entity body.

Any Content-Length greater than or equal to zero is a valid value. Section 7.2.2 describes how to determine the length of a response entity body if a Content-Length is not given.

Note: The meaning of this field is significantly different from the corresponding definition in MIME, where it is an optional field used within the "message/external-body" content-type. In HTTP, it should be used whenever the entity's length can be determined prior to being transferred.
Als je de CURL lib op je server hebt kan je die gebruiken om een HTTP request naar het betreffende bestand te doen, anders zul je het met een socket connectie moeten doen.
Vervolgens kan je de header van de HTTP response uitlezen en vervolgens de connectie sluiten (om niet het hele bestand te downloaden).

HTH :)

Verwijderd

Topicstarter
Hmm ik zie het alweer daar moet ik me dus eerst in verdiepen wat ik ook ergens kreeg was dit:
PHP:
1
<? $sHost = 'localhost'; $sFile = 'test.zip'; if (!$fp = fsockopen($sHost,80, &amp;$error, &amp;$errno, 30)) {   echo $errno.' '.$error; } else {   echo '<pre>';   fputs($fp, "HEAD /".$sFile." HTTP/1.1\nHOST: ".$sHost."\n\n");   while (!FEOF($fp))   {     echo fgets($fp, 1024);   }   echo '</pre>'; } exit; ?> ?>

Heb ik daar wat aan ofniet?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:43
Op zondag 02 juni 2002 14:44 schreef Piete het volgende:
Hmm ik zie het alweer daar moet ik me dus eerst in verdiepen
Eng he?
Heb ik daar wat aan ofniet?
Bestudeer de code totdat je weet wat het doet. Dan kun je zelf beoordelen of je er wat aan hebt. Je kunt 'm ook gewoon uitproberen natuurlijk. Dat hoeven wij toch zeker niet voor je te doen?

Trouwens, MrX heeft precies de informatie gegeven die je nodig hebt, met wat hints om je op weg te helpen. Dat lijkt me alle hulp die je nodig hebt.

  • xshredx
  • Registratie: Maart 2001
  • Laatst online: 06-09 16:36

xshredx

 

PHP:
1
<?function getfilesize($url) {  ereg("http://([^/]*)/(.*)$", $url, $regs);      $host = $regs[1];  $path = "/" . $regs[2];      $fp = fsockopen($host, 80, &amp;$errno, &amp;$errstr, 30);       if (!$fp) {     echo "ERROR: $errno: $errstr";   } else {     fputs($fp,"HEAD $path HTTP/1.0\nHost: $host\n\n");     while(!feof($fp)) {       $response .= fgets($fp,128);     }     fclose($fp);   }       $fileSize = ereg_replace("(.*)(Content-Length: )([0-9]*)(.*)","\\3",$response);  return $fileSize;    }?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 02 juni 2002 17:09 schreef xshredx het volgende:
En zo leert ie het zelf nooit...

Verwijderd

Topicstarter
Dat zeg je nu wel zo even.
Maar ik leer er meestal meer van.
Want nu kan ik zien hoe het ongveer in elkaar zit.
Bedankt xshredx ik ga er even mee experimenteren.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 02 juni 2002 18:32 schreef Piete het volgende:
Dat zeg je nu wel zo even.
Maar ik leer er meestal meer van.
Want nu kan ik zien hoe het ongveer in elkaar zit.
Bedankt xshredx ik ga er even mee experimenteren.
Ik zeg niet dat je niks kan leren van voorbeelden, maar compleet uitgewerkte code zonder enige uitleg is bij mijn weten niet de beste leermethode.

Verwijderd

Topicstarter
ok dat is wel zo ja.

  • xshredx
  • Registratie: Maart 2001
  • Laatst online: 06-09 16:36

xshredx

 

wat nou compleet uitgewerkte code??
ik geef gewoon een opzetje...
en zonder uitleg??
ik moet toch niet quoten uit de php manual wat fsockopen, fputs, fgets, ... doen en wat de syntax is?
het is allemaal zo standaard en simpel php, dat de topicstarter zelf toch wel eens de php manual kan induiken als hij van iets niet exact weet wat het doet.

en compleet uitgewerkt? ik vind dit nog niet de ideale oplossing hoor, maar ik dacht dat met dit kleine stukje code de gesuggereerde methode van socket openen en request doen beetje duidelijker werd gemaakt.
meer nog: ik wou beginnen vlug iets dergelijks te tikken om de topicstarter te helpen, toen ik eraan dacht dat ik iets dergelijks wel al eens op got gezien had. search ingedoken, en copy+paste.

ik weet gewoon uit ervaring dat als je niet weet waar je moet zoeken (omdat je er niets van afweet bijvoorbeeld), een dergelijk opzetje wel handig kan zijn.
ik hoop natuurlijk dat topicstarter ervoor zorgt dat hij de code begrijpt vooraleer hij ze zou gebruiken.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

En dit is een simpele vraag die heel makkelijk te vinden is op PHP net.En jawel bij precies de functie die zelf al was aangegeven. Beetje zelf zoeken doet ook wonderen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.