21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
paintwewewe
Profil *
Mám tady takovou hezkou funkcičku. Jen nevím, proč mi to nefunguje. Doma na localhostu mi to jede za 1, ale na webu zdarma ani ťuk. Pomozte prosím, co mám kde špatně. Funkce je následující:

<?
@$soubor = "http://www.main.aktualne.cz/index.php";
@$ext = fopen($soubor, "r");
@$obsah = fread($ext, filesize($soubor));
@fclose($ext);

$ext = fopen("vysledek.txt", "w");
$date1 = "----------------------------[obsah souboru $soubor ze dne ".Date(" d-m-Y/H:i:s")."]-----------------------------
(pořízeno z IP adresy $REMOTE_ADDR)


";
$date2 = "


----------------------------[obsah souboru $soubor ze dne ".Date(" d-m-Y/H:i:s")."]-----------------------------
(pořízeno z IP adresy $REMOTE_ADDR)";
fputs ($ext, "$date1");
fputs ($ext, "$obsah");
fputs ($ext, "$date2");
fclose($ext);

if ($hotovo = fopen("vysledek.txt", "r")):
echo("Akce byla úspě?ně <font color=\"red\"><b>provedena</b></font>! :)");
else: echo("Akce se <font color=\"red\"><b>nepovedla</b></font>! :("); endif;
?>
Kajman
Profil *
Nějak jste nenapsal, jestli Vám nejde načíst první soubor z webu, nebo se nepodaří zapsat do druhého.

Pokud selhává zápis, zkuste zkontrolovat práva.
paintwewewe
Profil *
No, to právgě přesně nevim, co nejde. Soubor se vytvoří, ale prázdný. Po odstranění @ před proměnýmy mi to vypíše chybu:

Warning: filesize(): Stat failed for http://www.main.aktualne.cz/index.php (errno=2 - No such file or directory) in /3w/aktualne.cz/m/main/wg/hack.php on line 11

Jo, ten skript běží na stránce na www.main.aktualne/wg/1.php, když by někdo chtěl tu chybu zažít na vlsatní oči.
Kajman
Profil *
No, tak na webou adresu tedy asi nejde použít filesize(). Zkuste to tedy brát dokud to jde.

tedy místo
@$obsah = fread($ext, filesize($soubor));

něco jako

$obsah = '';
if($ext)
while (!feof($ext)) {$obsah.= fread($ext, 8192);};
kaifman
Profil
nebo funcke $soubor = file("http://neco.cz/index.php");



file
(PHP 3, PHP 4 , PHP 5)

file -- Načte celý soubor do pole
Popis
array file ( string filename [, int use_include_path])


Identické s readfile(), soubor je však vrácen v podobě pole. Každý element pole odpovídá jednomu řádku v souboru včetně znaku konce řádku.

Můžete použít nepovinný druhý parametr a nastavit ho na "1", pokud chcete hledat soubor také v include_path.



<?php
// načti WWW stránku do pole a vytiskni ji
$fcontents = file ('http://www.php.net');
while (list ($line_num, $line) = each ($fcontents)) {
echo "<b>Line $line_num:</b> " . htmlspecialchars ($line) . "<br>\n";
}

// načti WWW stránku do řetězce
$fcontents = join ('', file ('http://www.php.net'));
?>
paintwewewe
Profil *
Malý dotaz, co je include_path?

To co jste napsali je dobrý, funguje to.
Zejména ta možnost číst předem danný počet znaků("dokud to jde").
Druhý příspěvek mi připadl celkem těžkopádný. Nemám moc rád pole... Ale napadlo mě, jestli se dají takhle vypsat i tagy PHP. Je to vůbec možné? Jinak díky:)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0