Zum Inhalt springen

PHP filesize


Empfohlene Beiträge

hallo

ich habe folgendes script:

<?

$filename = "http://www.home.de/";

$fd = fopen ($filename, "r");

$contents = fread ($fd, 1000);

fclose ($fd);

echo "$contents\n<!-- ende --!>";

?>

läuft auch recht gut nur mit der ausnahme das der browser (IE 6) nicht mehr mit den laden der seite aufhört.

habs mal mit

$contents = fread ($fd, filesize($filename));

probiert aber da kommt erst recht keine ausgabe als ob der filesize net kennt hab php4 und keine fehlermeldung kam.

wie kann ich nun die dateigröße rausbekommen ?

damit der browser sich nicht totquält beim laden ....

Paul

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

filesize() funktioniert nur auf lokalen Dateien.

Du kannst entweder ueber $content=implode('',file($url)); gehen oder wenn du fopen benutzen willst indem du sowas benutzt:


$fp=fopen($url,"r");
$content="";
while (!feof($fp))
{
$content.=fread($fp,255);
}
echo $content;
[/PHP]

das sollte eigentlich gehen..

"haengt" der browser dabei, ist irgendwo anders vermutlich der wurm drin, oder der server brauch zu lange um die url zu oeffnen.

Michael

Link zu diesem Kommentar
Auf anderen Seiten teilen

jo dank dir

geht recht jut

kann man den puffer der per fread gelesen wird auch dynamisch setzen (also evtl. mehr als 255 Zeichen ?)

kann ja sein das eine zeile im html code länger als 255 zeichen ist

oder liest der von anfang bis ende nur 255 zeichen und beginnt beim nächsten fread beim 256 zeichen ?

ich kenne fread von c programmierung her und da liest diese funktion immer nur eine zeile aus ?

Paul

Link zu diesem Kommentar
Auf anderen Seiten teilen

jetzt weis ich warum der nicht aufgehört hat zu laden, der hat immer wieder ne GET anweisung ausfühen wollen.

nun aber zu dem problem das ich jetzt habe.

ich kann zwar jetzt eine datei runterladen und wieder auf den browser ausgeben - wie nen proxy.

aber wie mache ich es das ich den string den ich ausgelesen habe auf eine weitere URL kontrolliert bzw. durchsucht.

sollte ich dazu alle gedownloadedten dateien in ein verzeichnis speichern und dan nacheinander in den browser ausgeben ?

<html><head>

<script language="JavaScript">

function winopen()

{

var URL="http://websearch.myip.org/main.html";

WebSearchMainFrame = window.open("",'x','fullscreen=1,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0');

window.focus();

WebSearchMainFrame.location=URL;

WebSearchMainFrame.focus();

}

</script>

<title>WebSearch.MyIP.org</title>

</head>

<body bgcolor="#c0c0c0" onload="winopen()">

<b><a href="http://www.web.de">www.web.de</a></b>

</body>

</html>

Paul

Link zu diesem Kommentar
Auf anderen Seiten teilen

und ein problem hab ich noch,

wenn ich

$url = "http://www.web.de/";

$fd=fopen($url,"r");

öffnen will mit den deinen code kommt ne fehler meldung

Warning: fopen("http://www.web.de/index.html","r") - Invalid argument in g:\htdocs\web\_index.php on line 10

Warning: Supplied argument is not a valid File-Handle resource in g:\htdocs\web\_index.php on line 12

gehn den nicht alle webseiten zu öffnen ?

Paul

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also soweit ich weiss kuemmert sich fread nicht um irgendwelche zeilenwechsel, 255 sollte also problemlos gehen, kann natuerlich auch erhoeht werden.

Auf weitere URLs in dem String kannst bspw. anhand eines regulaeren Ausdrucks ueberpruefen.

Normalerweise kann fopen schon alle Dateien oeffnen, allerdings kann es sein dass web.de irgendwelche rewrite-sachen laufen hat, mit redirect und so und es daher zu problemen kommt.

Probiers mal mit file();

Michael

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...