Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wczytanie pliku do zmiennej
Forum PHP.pl > Forum > Przedszkole
bmL
Witam,
Nie mam pomysłów i w manualu php nic nie mogę znależć google tak samo.
Chcę wczytać plik .html i zapisać go w zmiennej żeby póżniej przepuścić przez funkcję eval. Jeżeli się nie myłę powstanie w ten sposób system template? smile.gif
flv
file_get_contents" title="Zobacz w manualu PHP" target="_manual
A do prostego systemu templat'ów przydałaby się jeszcze funkcja która będzie zamieniała zmienne stylów na odpowiednie wartości.
bmL
Dziękuję smile.gif
Jeszcze jedno pytanko:
eval("\$str = \"$str\";");
Nie rozumiem dlaczego cudzysłowy i ukośniki muszą być akurat w tych miejscach. No i jeszcze ten średnik w środku.
Cudzysłowy właściwie chyba rozumiem ale te ukośniki :|
EDIT: jeszcze jedno pytanko: czy da się w jakiś zrobić żeby wewnątrz funkcji każde odniesienie się do zmiennej odnosiło się do zmiennych globalnych bez pojedynczego inicjowania ich global $zmienna;
Kicok
Jako parametr funkcji eval" title="Zobacz w manualu PHP" target="_manual podaje się kod PHP do wykonania. W związku z tym należy zachować składnię normalnego kodu PHP.

A co do ukośników, to to są podstawy operacji na stringach:
  1. <?
  2.  
  3. $zmienna_ktora_zostanie_zamieniona = 'ZAMIENIONA';
  4. $zmienna_ktora_nie_zostanie_zamieniona = 'NIE ZAMIENIONA';
  5.  
  6. echo "aaa $zmienna_ktora_nie_zostanie_zamieniona aaaaa $zmienna_ktora_zostanie_za
    mieniona aaaa "
    aaa" aaaa";
  7.  
  8. ?>


W cudzysłowie wszystkie zmienne, które nie mają ukośnika przed znakiem dolara zostają zamienione na ich wartość. Ukośniki stawia się także przed znakami cudzysłowia żeby zaznaczyć, że nie oznaczają one końca tekstu.
qwaq
może to pomoże ale ja bym użył funkcji file() do zapisu pliku do zmiennej
bmL
Cytat(Kicok @ 16.07.2007, 07:33:06 ) *
Jako parametr funkcji eval" title="Zobacz w manualu PHP" target="_manual podaje się kod PHP do wykonania. W związku z tym należy zachować składnię normalnego kodu PHP.

A co do ukośników, to to są podstawy operacji na stringach:
  1. <?
  2.  
  3. $zmienna_ktora_zostanie_zamieniona = 'ZAMIENIONA';
  4. $zmienna_ktora_nie_zostanie_zamieniona = 'NIE ZAMIENIONA';
  5.  
  6. echo "aaa $zmienna_ktora_nie_zostanie_zamieniona aaaaa $zmienna_ktora_zostanie_za
    mieniona aaaa "
    aaa" aaaa";
  7.  
  8. ?>


W cudzysłowie wszystkie zmienne, które nie mają ukośnika przed znakiem dolara zostają zamienione na ich wartość. Ukośniki stawia się także przed znakami cudzysłowia żeby zaznaczyć, że nie oznaczają one końca tekstu.

Dzięki teraz już kapuje ;]

Cytat(qwaq @ 16.07.2007, 09:55:01 ) *
może to pomoże ale ja bym użył funkcji file() do zapisu pliku do zmiennej

Tylko jak użyć tej funkcji?

Index.php:
  1. <?
  2. include ( "Funkcje.php" );
  3. $test = 'templwczytany';
  4.  
  5. wczytajtempla( zmienna, temp );
  6. eval( "$zmienna = "$zmienna";" );
  7. echo $zmienna;
  8. ?>

Funkcje.php
  1. <?
  2. function wczytajtempla($zmienna, $templatek)
  3. {
  4. global $zmienna;
  5. $zmienna = file($templatek . '.html');
  6. }
  7. ?>

temp.html
  1. $test

No i zwraca mi to: "Array" bez żadnych błędów paroswania
Jeżeli zastosuje funkcję file_file_get_contents wszystko normalnie śmiga. Jeżeli się niczym to nie różni to chyba nie warto kombinować? chyba, że file() mniej obciąza serwer?
EDIT: ahha file() zapisuje plik do tablicy ale mi bardziej odpowiada file_get_contents smile.gif
phpion
Zawsze możesz zrobić tak:
  1. <?php
  2. $zmienna = implode('', file($templatek . '.html'));
  3. ?>

ale faktycznie lepiej użyć file_get_contents (dodano ją w PHP5 więc na serwerze z 4 nie pójdzie).
bmL
Cytat(cytat z pl2.php.net)
Notatka: W PHP 4.3.0 możesz użyć file_get_contents() aby zwrócić zawartość pliku do łańcucha.

Czyli na php 4 chyba pójdzie?
phpion
worriedsmiley.gif faktycznie, sprawdziłem na php.net. Mój błąd, sorry.
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.