filesize_e()

Door - -, 20 jaar geleden, 3.310x bekeken

Helaas werkt filesize() alleen op lokale bestanden, maar hiermee werkt het ook op externe bestanden.

Het gebruik is verder heel simpel, en net als met de gewone PHP-functie filesize(), zo dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$sPath
= 'http://een.domein.nl/een/bestand.html';
$iFilesize = filesize_e($sPath);
echo $iFilesize;
?>

Gesponsorde koppelingen

PHP script bestanden

  1. filesizee

 

Er zijn 11 reacties op 'Filesizee'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Michael
michael
20 jaar geleden
 
0 +1 -0 -1
Volgens mij wel een goed script! Maar waar heb je zoiets nou eigenlijk precies voor nodig????
Iisys
iisys
20 jaar geleden
 
0 +1 -0 -1
Verder geen ervaring met cUrL ed, maar wat zijn de voordelen boven bijv de volgende code (als fopen_wrappers aanstaan) ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo strlen( file_get_contents( $url ) );
?>


En het lijkt me, iig voor deze afzonderlijk functie, handiger als je get_string_between() gewoon integreerd met filesize_e().

Of zeg ik nu onzinnige dingen?
- -
- -
20 jaar geleden
 
0 +1 -0 -1
@Michael: Tsjah, niet heel vaak, maar het kan handig zijn;)


@Iisys: dan haal je het hele bestand op. Stel dat je nu de grootte van een DVD (4,7Gb) opvraagt kost het maar een paar Kb, je krijgt dan namelijk alleen de headers binnen.
Dat integreren zou inderdaad kunnen, maar dit leek me toch wat netter.
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@michael

Bijvoorbeeld wanneer je een download aanbied vanaf een andere site. -> Linkt naar een download van een andere site. Je kan dan de grootte van het bestand laten zien bij de link, heel eenvoudig zonder dat je daar zelf de grootte van moet bepalen en er vast bij moet zetten. Het komt dynamische input van je website wel ten goede

@Jonathan
Mooi gemaakt, best wel handig.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
Let op dat wanneer je een webpagina via HTTP/1.1 opvraagt, je een antwoord in stukjes terug kan krijgen: Chunked encoding. En op dat moment geldt Content-length niet voor het hele document, maar alleen voor het stukje dat op dat moment wordt teruggestuurd (en er kunnen dus nog meer stukjes volgen)

PHP heeft vanaf versie 5 trouwens get_headers. Doet hetzelfde, maar is niet afhankelijk van cURL.
Michael
michael
20 jaar geleden
 
0 +1 -0 -1
@Robert Deiman

Duidelijk duidelijk :)

zeker wel een handig script dan!
- -
- -
20 jaar geleden
 
0 +1 -0 -1
@Robert: Thanx :)

@Jelmer: Oke, dat kan een probleem zijn, maar ik geef toch duidelijk aan dat ik de body niet wil, en dan wordt 'ie toch ook niet opgehaald? Of haalt cURL 'm wel op en wordt 'ie direct weer weggegooid?
Nou ja, ik ga straks wel even een snelheidstestje doen bij een bestand van een paar honderd Mb, en dan zal ik het wel even melden.

@Michael: Thanx :)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Jelmer bedoelt dat bij HTTP/1.1 je pagina in delen naar je verstuurd kan worden en je daarom in de headers ook de content-length van een deel van de pagina terugkrijgt. Dus hij geeft niet de content-length van de hele pagina. Dus dan weet je ook niet de filesize, tenzij je eerst het hele bestand downloadt. Jij begrijpen mij?
- -
- -
20 jaar geleden
 
0 +1 -0 -1
@Erik: Ja, dat snap ik, dan toch maar die andere functie ;)

Edit: done.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
@Jonathan & PHPerik, volgens mij heb ik een foutje gemaakt, en krijg je helemaal geen Content-Lenght in die geval terug, alleen een body-length o.i.d. maar dat is een header die onderdeel is van het stukje code dat je terugkrijgt.

Maar dit komt eigenlijk zelden voor bij bestanden. Bedenk maar. Hoe vaak heb je in je download-venstertje gezien dat er geen geschatte tijd kon worden gegeven, of er dus geen progress-balk gevuld kon worden. Dat gebeurt heel zelden (eigenlijk alleen bij slecht geïmplementeerde download-controle waarbij het hele bestand door PHP wordt geladen en er geen Content-Length wordt meegestuurd) dus ik denk dat je je door deze uitzondering niet gestopt moet voelen. Je moet er alleen even rekening mee houden.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- -
- -
20 jaar geleden
 
0 +1 -0 -1
@Jelmer: Ok, weer wat geleerd :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. filesizee

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.