Autor Zpráva
svagi
Profil
Ahoj, mám problém se zápisem do souboru. Požadovanou věc kterou chci zapsat mi to hází pokaždé na konec souboru. Nikoliv na začátek kde je potřeba... Nevíte čím by to mohlo být? Předem děkuji.
<?
$cesta = $_POST["cesta"];

//info o souboru                                                 
$_FILES['soubor']['name']; // nazev
$_FILES['soubor']['tmp_name']; // umisteni
$_FILES['soubor']['type']; // typ souboru
 
                                               
//samotný upload
if (isset($_FILES['soubor']))
  {                            
    $slozka = $cesta; // cilova cesta(slozka)
    echo $slozka."<br>test<br>";    //informativni cesta
    $cil = $slozka .$_FILES['soubor']['name']; // promenna "cil" obsahuje adresar
    $nazev_souboru = $_FILES['soubor']['tmp_name']; // zjisti docasny umsiteni
    move_uploaded_file($nazev_souboru, $cil) // zkopiruje
      or die ("Přenesený soubor nelze zkopírovat"); // error
    chmod ($cil, 0777); // prava

//zápis    
$obsah = $_POST["source"];
$obsah = stripslashes($obsah);
$otevri = fopen($cil, "a");
fwrite ($otevri,"<?php die;?>\n");
fclose ($otevri);
$otevri2 = fopen($cil, "a");
fwrite ($otevri2,$obsah);
fclose ($otevri2);
    
    
    
    echo "<br><br><center><a href=\"$cil\">Spustit </a><br>";
    echo '<a href="menu.php"> Zpet na hlavni stranku. </a></center>';
  }                                                       
                                                            
 ?>


Zápis jsem zkoušel i v jednom řetezci a i s různými právy, bezvýznamně... pořád zůstává na konci... vypíše nejdřív obsah a až poté požadované <?php die;?>\n.
Joker
Profil
svagi:
Požadovanou věc kterou chci zapsat mi to hází pokaždé na konec souboru. Nikoliv na začátek kde je potřeba...
Režim "a" znamená "append", neboli připojení dat na konec souboru.

Pro vložení jinam než na konec načtěte celý obsah souboru, vložte data kam potřebujete, smažte původní obsah souboru a vložte nový.
Majkl578
Profil
Jednoduše by to šlo řešit třeba pomocí funkcí file_get_contents a file_put_contents.

$file = '/tmp/foo';
$prepend = time() . "\n";
file_put_contents($file, $prepend . file_get_contents($file));


Jen pozor na velké soubory, mohl by být problém s pamětí.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0