Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dopisywanie danych na początku pliku
Forum PHP.pl > Forum > Przedszkole
jinchuriki
Witam, mam skrypt który odczytuje i dopisuje na końcu pliku dane. A ja chcę żeby dopisywało się na początku pliku. Mam ustawiony odczyt a+. Na jaki zmienić by dopisywało się na początku pliku?
sowiq
http://pl.php.net/fopen:
Cytat
'a+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć
'r+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku.
jinchuriki
Ale r+ nie dopisuje, ale zapisuje na miejscu poprzedniej wiadomości.
sowiq
Masz rację. Wydaje mi się, że nie ma wbudowanej funkcji w PHP do zrobienia czegoś takiego, ale ręki sobie uciąć nie dam. Chodzi o to, że w przypadku pisania na początku pliku, PHP musiałoby go ładować do pamięci. Z dopisywaniem na końcu sprawa ma się inaczej.

Jeśli to nie jest super-duży plik, możesz zrobić chociażby tak:
  1. <?php
  2. $plik = "test.txt";
  3. $tresc = "moja tresc\n";
  4. file_put_contents($plik, $tresc . file_get_contents($plik));
  5. ?>
jinchuriki
Dzięki. winksmiley.jpg

I jeszcze jedno pytanie: mianowicie jak zrobić wyskakujący komunikat w php? Mam skrypt java, ale nie za bardzo znam ten język... Chyba, że pomożecie mi zrobić by zapisać wynik tego skryptu do zmiennej w php, żebym mógł potem się do niej odwołać. Skrypt java:

Kod
<script>
<!--
var caution = false
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 900000)
document.cookie = curCookie
else
if (confirm("Cookie exceeds 900KB and will be cut!"))
document.cookie = curCookie
}


function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}

function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
date.setTime(date.getTime() - skew)
}
var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 31 * 24 * 60 * 60 * 1000)
var name = getCookie("name")
document.fgcolor = "blue"
if (!name)
name = prompt("Podaj swój nick, który będzie wyświetlany w SpamBoxie", "")
if (name == null || name == "") { alert ("Dlaczego jesteś taki nieuprzejmy i się nie przedstawiłeś?") }
else
{
setCookie("name", name, now)
var today = new Date ()
var hrs = today.getHours();
document.write ("<font face=Monotype corsiva><font size=3 color=red><i>"+ name +"</i></font>");
}

// -->
</SCRIPT>
sowiq
PHP to język server-side. Nie da się w nim zrobić wyskakujących komunikatów ani innych tego typu rzeczy. A co do javy - rozumiem, że chodziło Ci o JavaScript?
Kod
alert('Komunikat');


Połączone z PHP:
  1. <?php
  2. $pokaz_komunikat = true;
  3.  
  4. if($pokaz_komunikat){
  5.    echo '<script type="text/javascript">alert('komunikat');</script>';
  6. }
  7. ?>
jinchuriki
Dzięki jeszcze raz. winksmiley.jpg

<a href="http://lukas-art.unl.pl/skrypty/czat.php" target="_blank">http://lukas-art.unl.pl/skrypty/czat.php</a>

Mam jeszcze jedno pytanko, co trzeba przerobić w tym kodzie JS,który jest na stronie wyżej, żeby nie wyświetlała się wszystkim ta nazwa użytkownika, którą oni wpisali, tylko ta którą wpisał user, który napisał tę wiadomość.

questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.