Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Pisanie kodu PHP w HTML
Forum PHP.pl > Forum > Przedszkole
deha21
Witam,
Pytanie teoretyczne. Jak poprawnie/lepiej jest pisać stronę, czy robiąc np.:
  1. <div>Blabla</div>
  2. <div><? echo "Coś tam".$jakiśkod."<br>"; ?></div>


Czy może całość pisać w echo w PHP?

Pozdrawiam
piotrekk
Ja robię i tak i tak w zależności od wymagań jakie ma spełniać dany element.
Chyba nie ma różnicy czy tak czy tak....bynajmniej ja nie zauważyłem.
Kszyhuu
Jest różnica i to dość istotna moim zdaniem. O wiele lepiej jest pisać tak, jak to pokazałeś. Pisanie całości w echo może sprawiać problemy z niektórymi znakami. Tj jeżeli wstawiasz tekst do echo pomiędzy ' ' albo " " to tych znaków nie możesz już używać, bo wywali parse errora. smile.gif
lessi
Ty właśnie zrobiłeś błąd z echem powinno być raczej
  1. <div>Blabla</div>
  2. <div><? echo "Coś tam $jakiśkod <br>"; ?></div>

albo
  1. <div>Blabla</div>
  2. <div><? echo 'Coś tam '. $jakiśkod .'<br>'; ?></div>
Kszyhuu
Cytat(lessi @ 5.12.2009, 13:09:44 ) *
Ty właśnie zrobiłeś błąd z echem powinno być raczej
  1. <div>Blabla</div>
  2. <div><? echo "Coś tam $jakiśkod <br>"; ?></div>

Jaja sobie robisz, nie? biggrin.gif Ciekawe jak ma załapać zmienną bez odpowiedniego łączenia stringów. smile.gif Wrzuć to do edytora ze sprawdzaniem składni i sprawdź efekt.

Dobre jest rozwiązanie zawarte w pierwszym poście, oraz Twoja druga propozycja, czyli:
  1. <div>Blabla</div>
  2. <div><? echo 'Coś tam '. $jakiśkod .'<br>'; ?></div>

&
  1. <div>Blabla</div>
  2. <div><? echo "Coś tam".$jakiśkod."<br>"; ?></div>


lessi
Cytat(Kszyhuu @ 5.12.2009, 13:44:43 ) *
Jaja sobie robisz, nie? biggrin.gif Ciekawe jak ma załapać zmienną bez odpowiedniego łączenia stringów. smile.gif Wrzuć to do edytora ze sprawdzaniem składni i sprawdź efekt.

Dobre jest rozwiązanie zawarte w pierwszym poście, oraz Twoja druga propozycja, czyli:
  1. <div>Blabla</div>
  2. <div><? echo 'Coś tam '. $jakiśkod .'<br>'; ?></div>

&
  1. <div>Blabla</div>
  2. <div><? echo "Coś tam".$jakiśkod."<br>"; ?></div>

A ty próbowałeś mojej wersji? Oczywiście można tak zrobić ale są dwie wersje echo aby je wykorzystywać. Wersja z ' interpretuje wszystko dosłownie. Czyli jak znajdzie się zmienna to wyświetli nazwę np.
  1. echo 'coś tam $jakiskod';

Otrzymamy coś tam $jakiskod. A jeżeli użyjemy w cudzysłowie ($jakiskod="wartość") to:
  1. echo "coś tam $jakiskod";

otrzymamy coś tam wartość. Zobacz u siebie
Kszyhuu
Cytat(lessi @ 5.12.2009, 14:12:39 ) *
A ty próbowałeś mojej wersji? Oczywiście można tak zrobić ale są dwie wersje echo aby je wykorzystywać. Wersja z ' interpretuje wszystko dosłownie. Czyli jak znajdzie się zmienna to wyświetli nazwę np.
  1. echo 'coś tam $jakiskod';

Otrzymamy coś tam $jakiskod. A jeżeli użyjemy w cudzysłowie ($jakiskod="wartość") to:
  1. echo "coś tam $jakiskod";

otrzymamy coś tam wartość. Zobacz u siebie


No spoko, ale zakładając, że zmienna $jakiśkod będzie zdefiniowana tak:
  1. $jakiśkod= mysql_escape_string($_POST['jakiśformularz']);
  2. //ALBO
  3. $jakiśkod= mysql_query("SELECT * FROM jakaśtabela WHERE jakaśkolumna= 'jakaśwartość'");

To używając metody z " " też będziemy musieli rozdzielić stringi tak jak napisałem, żeby wyświetliło jakąś tam zmienną, a nie zwykły napis. Jeżeli zrobisztak jak pokazałeś, czyli:
  1. echo 'coś tam $jakiskod';
  2. //LUB
  3. echo "coś tam $jakiskod";

To nie wyświetli Ci wartości zmiennej, tylko napis:
coś tam $jakiśkod
choć powinno wyświetlić np
coś tam 15
lessi
Cytat(Kszyhuu @ 5.12.2009, 14:29:22 ) *
No spoko, ale zakładając, że zmienna $jakiśkod będzie zdefiniowana tak:
  1. $jakiśkod= mysql_escape_string($_POST['jakiśformularz']);
  2. //ALBO
  3. $jakiśkod= mysql_query("SELECT * FROM jakaśtabela WHERE jakaśkolumna= 'jakaśwartość'");

To używając metody z " " też będziemy musieli rozdzielić stringi tak jak napisałem, żeby wyświetliło jakąś tam zmienną, a nie zwykły napis. Jeżeli zrobisztak jak pokazałeś, czyli:
  1. echo 'coś tam $jakiskod';
  2. //LUB
  3. echo "coś tam $jakiskod";

To nie wyświetli Ci wartości zmiennej, tylko napis:
coś tam $jakiśkod
choć powinno wyświetlić np
coś tam 15

Z echo 'coś tam $jakiskod' oczywiście że wyskoczy coś tam $jakiśkod. Ale w obu przypadkach:
  1. $jakiśkod= mysql_escape_string($_POST['jakiśformularz']);
  2. //ALBO
  3. $jakiśkod= mysql_query("SELECT * FROM jakaśtabela WHERE jakaśkolumna= 'jakaśwartość'");

Otrzymamy wartość zmiennej. Tak otrzymałem sprawdzając twoje argumenty.
  1. $result=mysql_query("SELECT imie, nazwisko from users where login='lessi'");
  2. while ($row=mysql_fetch_row($result))
  3. {
  4. echo "Coś tam $row[0] $row[1] ahahahh";
  5. }

Otrzymałem - Coś tam L***** S***** ahahahh
Meares
Zamiast się kłócić dowiedzcie się jaka jest różnica pomiędzy stringami otoczonymi apostrofami, a tymi otoczonymi cudzysłowami.
Cobyście się nie naszukali:

Tekst w stringach otoczonych apostrofami (') jest traktowany dosłownie:
  1. $a = 1;
  2. echo '$a';
Zwróci nam:
Cytat
$a
Natomiast wartości stringów otoczonych cudzysłowami (") jest "podmieniana" (w wypadku zmiennych):
  1. $a = 1;
  2. echo "$a";
Zwróci nam:
Cytat
1
Nie można napisać tak (w żadnych wypadku):
  1. $a = 1;
  2. echo "jakas_funkcja($a)";
Gdyż w przypadku zastosowania cudzysłowów zwróci nam:
Cytat
jakas_funkcja(1)
A w wypadku zastosowania apostrofów:
Cytat
jakas_funkcja($a)


Co do tematu:
Najlepiej jest stosować szablony Smarty, albo OPT. A najlepiej jest pisać w MVC.
peter13135
na pewno lepiej jest użyć
  1. echo 'lalala'.$zmienna;
niż
  1. echo "lalal $zmienna";
ze względów optymalności, jednak obie wersje będą działały.

nie jestem programistą, a jedynie osobą która się tym troche interesuje więc proszę nie brać tego co mówie jako pewnik.

Uważam że najlepiej jest użyć systemu szablonów by nie mieszać kodu php z resztą czyli html css js itd...
chyba najbardziej znany system szablonów to smarty, ja go nigdy nie używałem bo uważam że jest trochę za duży, nie zrozumiały dla mnie, napisałem swój własny. Jak to ma się do wydajności ? na pewno będzie wolniej, z tego co wiem systemy szablonów zawsze korzystają z wyrażeń regularnych które nie są zbyt szybkie. Ale za to mamy 2 korzyści
1. mniej bałąganu dzięki oddzieleniu kodu php od reszty
2. łatwa zmiana szablonów ;] - można tak skrypt napisać żeby wczytywał różne themy
lessi
Cytat(Meares @ 5.12.2009, 14:59:58 ) *
Zamiast się kłócić dowiedzcie się jaka jest różnica pomiędzy stringami otoczonymi apostrofami, a tymi otoczonymi cudzysłowami.
Cobyście się nie naszukali:

Tekst w stringach otoczonych apostrofami (') jest traktowany dosłownie:
  1. $a = 1;
  2. echo '$a';
Zwróci nam:Natomiast:
  1. $a = 1;
  2. echo "$a";
Zwróci nam:

Nie napisałem o tym wprost ale o tym miałem cały czas na myśli
Dodatkowo opcja (" ") na dodatkowo inne funkcje m. in.
Nowa linijka - /n
Tabulator - /t
Jednak ja wolę pisać z (' ') ponieważ bardziej oddziela zmienną od reszty kodu.
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.