[php] łączenie pliku a później "podanie" całości

Odpowiedz Nowy wątek
2007-01-03 15:39
0

czy dało by się zrobić coś takiego że mam pliki np.
1.txt
blabla
2.txt
bleble
i skrypt zrobilby takiego myka że połączyl mi by oba pliki (co w efekcie dało by "blablableble" -- bez zadnych spacji czy nowej linijki!) i "podałby" przegladarce do ściagniecia jako np plik 3.txt (ale nie tworzył by tego pliku w ogole!)..
i czy dało by sie zrobić coś takiego dzialajacego na plikach binarnych (nie tekstowych) ??


Pozostało 580 znaków

2007-01-03 16:10
0
$s = implode(file_get_contents('1.txt'), file('2.txt'));

Co tego "3.txt", to albo użyjesz mod_rewrite, albo stworzysz plik, zapiszesz do niego treść ($s) i go usuniesz, np. tak:

$s = file_put_contents('3.txt', implode(file_get_contents('1.txt'), file('2.txt')));
// operacje
unlink($s);

Jeśli masz PHP 4, to masz definicję funkcji file_put_contents:

function file_put_contents($n,$d) {
  [email protected]($n,"w");
  if (!$f) {
   return false;
  } else {
   fwrite($f,$d);
   fclose($f);
   return true;
  }
}

Hm, chyba trza to dodać do FAQ :)


homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2007-01-03 16:25
0

:|

to z plików:

1.txt
blabla

2.txt
bleble

zrobi:

3.txt
bleble

a np z:

1.txt
blabla

2.txt
bleble
bleble

zrobi

3.txt
bleble
blablableble
blabla

chyba że się mylę ?
raczej chodzi o

$txt = file_get_contents('1.txt') . file_get_contents('2.txt');

za to wcale nie musisz tego zapisywać do pliku, wystarczy że prześlesz do przeglądarki nagłówek mówiący o tym że przeglądarka ma do czynienia z załącznikiem i podać nazwę pliku

ale rozwiązanie z mod_rewrite by było chyba lepsze ze względu na to że przeglądarka nie ma wtedy nic do gadania i na pewno nie zapisze pliku z rozszerzeniem php


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2007-01-03 16:41
0

Adamo: fakt, masz rację z tym implode, pomyliło mi się. I właśnie miałem poprawić na to, co napisałeś, ale coś akurat 4p przez chwile nie kontaktowało.


homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2007-01-03 20:33
0

za to wcale nie musisz tego zapisywać do pliku, wystarczy że prześlesz do przeglądarki nagłówek mówiący o tym że przeglądarka ma do czynienia z załącznikiem i podać nazwę pliku

no a jak to zrobic? przy uzyciu tego:

$txt = file_get_contents('1.txt') . file_get_contents('2.txt');


Pozostało 580 znaków

2007-01-03 21:31
0

Chociazby tak:

echo file_get_contents('1.txt') . file_get_contents('2.txt');

Ew. zeby przegladarka byla na 100% pewna, ze to czysty tekst to:

header("Content-type:text/plain");
echo file_get_contents('1.txt') . file_get_contents('2.txt');

You need to learn how to walk
before you can run

Pozostało 580 znaków

2007-01-04 09:51
dzek69_w_szkole:)
0

no ale ja chce zeby nie wyswietlic to w przegladarce tylko sciagnac!

Pozostało 580 znaków

2007-01-04 10:10
0

No to podaj odpowiedni naglowek:

header("Content-type:application/octet-stream");
header('Content-Disposition: attachment; filename="3.txt"');
echo file_get_contents('1.txt') . file_get_contents('2.txt');

You need to learn how to walk
before you can run

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0