Łączenie PHP i CSS

0

Czy jest możliwe łączenie plików php i css?

2

Tak.

0

Aż sprawdzilem 10 razy nick up bo nikt chyba nie sądził że bświerczyński jest odpowiedzieć w jednym akapicie, zdaniu a co dopiero w jednym słowie..
ale cóż dzieki

0

Nie wiem czy ta moja odpowiedź coś Ci dała, bo nie napisałeś dokładnie o co chodzi. Jeśli chcesz wiedzieć coś dokładniejszego, np. czy (albo: jak) można generować dynamicznie plik CSS za pomocą skryptu PHP, to będę mógł Ci odpowiedzieć bardziej szczegółowo.

Generalnie raczej rzadko umieszcza się kod CSS i PHP w jednym pliku. PHP generuje przeważnie tylko HTML, a z poziomu HTML-a używamy tagów <link> żeby podpiąć zewnętrzny, statyczny arkusz stylów. Można jednak osadzić CSS w pliku HTML generowanym przez PHP i wtedy mamy plik PHP, w którym jest kod CSS. Można też wygenerować sam arkusz stylów za pomocą PHP, ale to się robi już w ogóle rzadko.

Generalnie, PHP przyzwoicie nadaje się do tworzenia praktycznie jakiegokolwiek "tekstu". Tym tekstem może być kod HTML strony, ale także arkusz stylów czy plik ze skryptem JavaScript. Domyślnie tagi PHP "nie działają" w plikach .js i .css, bo pliki te serwer zwraca jako zwykły tekst, nie przepuszcza ich przez interpreter PHP. Można to jednak zmienić w ustawieniach.

0

chodziło mi bardziej o to czy w skrypcie php można umieścić odnosnik jak w html do zewnetrznego arkusza plikow. i pozniej w php ustawiać divy i bawic sie?

0

Tak, możesz, ale chyba nie rozumiesz do końca idei php. Kod php jest wykonywany po stronie serwera, a serwer 'wypluwa tekst'. Przeglądarka nie wie, czy strona jest napisana z wykorzystaniem php, czy nie (właściwie, to można sprawdzać nagłówki, ale to nie jest istotne). Przeglądarka dostaje tekst, który (najczęściej) interpretuje jako kod html.

chodziło mi bardziej o to czy w skrypcie php można umieścić odnosnik jak w html

<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<?php echo 'Witaj świecie :)' ?>
</body>
</html>

Powyżej masz przykład najprostszej stronki z wykorzystaniem php, gdzie jest dołączony zewnętrzny plik css (chociaż nie ukrywam - to co napisałeś jest co najmniej bez sensu).

0

a mając taki skrypt
(osoby plik) dajmy na to 4p.php

<?php tu jakieś pierdoły :( ?>

i czy np. majac w 4p.php instrukcje print ktora karze wyświetlać nazwe : 4p

moge dorzucić do tego skryptu ( nie do html i osadzonym w nim skryptu) zewnętrzny arkusz stylów

by to wyglądało tak

<?php <link rel="Stylesheet" type="text/css" href="style.css" /> tu jakieś pierdoły :( ?>
0

Nie do końca. To co znajduje się pomiędzy <?php a ?> jest źródłem Twojego programu. W takim przypadku wywali Ci błąd, ponieważ nie jest to poprawna składnia programu. Jeśli chcesz wyświetlić to za pomocą skryptu użyj funkcji echo:

echo '<link rel="Stylesheet" type="text/css" href="style.css" />';
1

@kurski:
Nie wiem czy rozumiesz jak to działa.

Nie ma w PHP specjalnych konstrukcji do "dorzucania stylów". Sposób działania PHP jest prosty: za pomocą PHP generujesz kod HTML, który trafi do przeglądarki. Generujesz cały dokument. PHP domyślnie przepisuje na wyjście, czyli "generuje" tekst, który masz wewnątrz pliku PHP.

Czyli jeśli w pliku 4p.php miałbyś tylko coś takiego:

dupa

(tak, cały plik to tylko jeden wyraz: dupa)
To w przeglądarce zobaczyłbyś dokładnie to samo. Bo PHP przepisze to na wyjście.

Podobnie jest z tagami HTML. Dla PHP tagi HTML to taki sam tekst jak dupa. Nic nie znaczy. Więc go przepisuje na wyjście.

Jeśli w pliku 4p.net miałbyś coś takiego:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
  </head>
  <body>
    <p>Coś tam</p>
  </body>
</html>

to PHP po prostu przepisze to na wyjście, czyli wyśle do przeglądarki taki tekst. Przeglądarka odczyta to jako normalny, prawidłowy plik HTML.

I teraz na czym polega bajer: na tagach <?php ... ?>. W tych tagach jest jedyny tekst, którego PHP nie przepisuje na wyjście, tylko wykonuje. Musi to być poprawny kod PHP -- tutaj PHP jest już bardzo restrykcyjne i pilnuje, byś zachował składnię PHP (a poza tagami PHP pozwala napisanie czego się chce -- zostanie to po prosty przepisane na wyjście).

Powiedzmy, że do poprzedniego przykładu dorzucasz mały tag PHP (wstawię go wewnątrz <p>), który niczego konkretnego nie robi -- tylko przypisuje do zmiennej $jakaśZmienna wartość wyrażenia 2+2:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
  </head>
  <body>
    <p>Coś tam<?php $jakaśZmienna = 2 + 2; ?></p>
  </body>
</html>

PHP przepisze na wyjście tekst do otwarcia tagu <?php, następnie wykona "prawdziwy" kod PHP, ukryty w tych tagach, czyli wykona $jakaśZmienna = 2 + 2; . Ale ten kod tak naprawdę niczego ciekawego nie robi, niczego nie wyświetla, więc niczego na wyjściu nam to nie zmienia. PHP dojdzie do tagu zamykającego ?> i wypisze całą resztę. Efekt będzie taki, że do przeglądarki trafi dokładnie to samo co poprzednio, bo wewnątrz tagu <?php ?> nic nie wyświetliliśmy. Czyli otrzymamy na wyjściu:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
  </head>
  <body>
    <p>Coś tam</p>
  </body>
</html>

A teraz spróbujmy wyświetlić coś dodatkowego, wstawiając w tagi <?php ?> instrukcję print:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
  </head>
  <body>
    <p>Coś tam<?php print ' i to coś tam całkiem fajnego!'; ?></p>
  </body>
</html>

Teraz PHP zadziała jak zwykle: przepisuje na wyjście tekst aż do tagu otwierającego <?php. Następnie, wykonuje skrypcik z instrukcjami PHP. W tym skrypcie jest tylko instrukcja print. PHP ją wykonuje, czyli wypisuje na wyjście ciąg i to coś tam całkiem fajnego!. Następnie, PHP przepisuje na wyjście wszystko to co jest za tagiem ?>.

Czyli "na wyjściu", a więc w przeglądarce, widzimy coś takiego:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
  </head>
  <body>
    <p>Coś tam i to coś tam całkiem fajnego!</p>
  </body>
</html>

Zauważ jak się zmienił tekst w paragrafie -- to efekt działania instrukcji print.

Więc teraz pytanie: co zrobić z tymi arkuszami stylów?

Trzeba je po prostu umieścić we właściwym miejscu na generowanej stronie. PHP nie interesuje się tym, co wsadzasz w sekcję <head> -- z punktu widzenia PHP ta sekcja mogłaby w ogóle nie istnieć.

Wystarczy więc, że wstawisz arkusz stylów we właściwym miejscu POZA tagami <?php ?>:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
    <link rel="Stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <p>Coś tam<?php print ' i to coś tam całkiem fajnego!'; ?></p>
  </body>
</html>

Efekt będzie taki:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
    <link rel="Stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <p>Coś tam i to coś tam całkiem fajnego!</p>
  </body>
</html>

Czyli PHP jak zwykle tępo przepisuje wszystko poza tagami <?php ?>. Przepisuje również nasz tag HTML <link>. I otrzymujemy dokument HTML z tagiem <link>, czyli z podpiętym arkuszem stylów. Żadnej magii tutaj nie ma.

Drugi sposób to wejście w tag <?php ?> i użycie instrukcji print żeby wyświetlić arkusz stylów:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tytuł</title>
    <?php print '<link rel="Stylesheet" type="text/css" href="style.css">' ?>
  </head>
  <body>
    <p>Coś tam<?php print ' i to coś tam całkiem fajnego!'; ?></p>
  </body>
</html>

Efekt jest taki sam jak poprzednio.

2

Taka ciekawostka dla pro... i nalezy ją potraktować tylko jako ciekawostkę:
czy wiesz o tym że... w Operze i Firefox możesz dodawać style w nagłówkach?

<?php
header("Link: <http://wwwexample.org/style.css>; REL=stylesheet");
?>
2

Tylko że style w nagłówkach moim zdaniem nie mają większego sensu. Style dotyczą strony, zawartości, contentu, a nie opisu dokumentu HTML. W nagłówkach to można cache ustawić, przekierowanie, akceptowalne języki.. coś co nie ma specjalnego związku z samą stroną, z jej wyglądem, etc.

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