Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blad prz nadawaniu zmiennej wartosci
Forum PHP.pl > Forum > PHP
krzyzak_p
Mam problem z nadawaniem zmiennej wartosci. probuje to zrobic w nastepujacy sposob:
  1. <?php
  2.  
  3. $lang_wybor = '<a href="' ."$link_lang_en". '"><img src="images/flag_en.gif" alt="' ."$wybjez_en_alt". '" title="' ."$wybjez_en_alt". '" style="border: 0;" /></a><a href="' ."$link_lang_de". '"><img src="images/flag_de.gif" alt="' ."$wybjez_de_alt". '" title="' ."$wybjez_de_alt". '" style="border: 0;" /></a>';
  4.  
  5. ?>

po czym w wiekszej tresci, ktora jest wywolywana za pomoca funkcji echo ''; w nastepujacy sposob:
  1. <?php
  2. echo ' bla bla bla ' ."$lang_wybor". ' bla bla bla'; 
  3. ?>

jedyne co otrzymuje po taki mwywolaniu, to:
  1. <a href=""><img src="images/flag_en.gif" alt="English Version" title="English Version" style="border: 0;" /></a><a href=""><img src="images/flag_de.gif" alt="Deutsch Version" title="Deutsch Version" style="border: 0;" /></a>

gdzie jest blad? tzn gdzie apostrofy i cudzyslowia wykluczaja sie i powoduja blad i dlaczego?;]
Kuziu
Było wiele razy.

Stosuj znaki ucieczki.

  1. <?php
  2.  
  3. $zmienna = '<a href="' . $adres . '">moj apostrof' i cos dalej';
  4.  
  5. ?>


Zasada jest taka ze najlepiej uzywac apostrofow do tekstow w ktorych nei ma zmiennych a zmienne dołączać kropkami lecz nie umieszczać już zmiennych w cudzysłowiach.

A aby umieścić apostrof w tekście objętym apostrofami zastosować znak ucieczki czyli \'

  1. <?php
  2.  
  3. $lang_wybor = '<a href="' . $link_lang_en . '"><img src="images/flag_en.gif" alt="' . $wybjez_en_alt . '" title="' . $wybjez_en_alt . '" style="border: 0;" /></a><a href="' . $link_lang_de . '"><img src="images/flag_de.gif" alt="' . $wybjez_de_alt . '" title="' . $wybjez_de_alt . '" style="border: 0;" /></a>';
  4.  
  5. ?>

Powinno być dobrze
sf
mistrzu, nie umiesz zrobic tego po ludzku, jak czlowiek...

np. tak :

  1. <?php
  2.  
  3. $link = "http://www.hyh.pl";
  4.  
  5. $go = <<<GO
  6. <a href="$link">hahaha</a>
  7. GO;
  8.  
  9. echo $go;
  10.  
  11. ?>


od paru lat ogladam to forum i wszyscy sie bawia apostrofami ... zle sie to czyta, zle sie to pisze, nie mam pojecia po co tak piszecie, poza powyzsza formo mozna uzywac sprintf, albo jakis system szablonow, proste, latwe, czytelne, skuteczne ...
krzyzak_p
niestety, nie jest dobrze kuziu;]
a co do metody sf... nie do konca rozumiem Twoj post...
sprobuje cos innego jeszcze zrobic, bo mam pewien pomysl... Jak by cos wyszlo, to napisze;]
Fipaj
krzyzak_p: sposób sf jest najlepszy winksmiley.jpg
  1. <?php
  2. $go = <<<GO
  3. Tutaj jakiś dłuuugi tekst z apostrofami i cudzysłowami, """'''''! :)
  4. GO;
  5. echo $go;
  6. ?>
krzyzak_p
ehh mi nie chodzi o zaden tekst z apostrofami i innymi takimi rzeczami, lecz o to, zeby mi poprawnie wyswietlal moj link...
Czyli zeby laczy zmienne i normalny tekst - stworzyl mi z tego link, a nie robiul pusty adres linka;/
harryk
  1. <?php
  2. $lang_wybor = '<a href="'.$link_lang_en.'"><img src="images/flag_en.gif" alt="'.$wybjez_en_alt.'" title="'.$wybjez_en_alt.'" style="border: 0;" /></a><a href="'.$link_lang_de.'"><img src="images/flag_de.gif" alt="'.$wybjez_de_alt.'" title="'.$wybjez_de_alt.'" style="border: 0;" /></a>';
  3. ?>


no a potem:

  1. <?php
  2. echo ' bla bla bla '.$lang_wybor.' bla bla bla';
  3. ?>
krzyzak_p
no albo ja jestem ciemny, albo moja wersja php dziwnie to interpretuje... (mam 5.0.3)
nadal podaje mi w kodzie html:
  1. <a href=""><img src="images/flag_en.gif" alt="English Version" title="English Version" style="border: 0;" /></a><a href=""><img src="images/flag_de.gif" alt="Deutsch Version" title="Deutsch Version" style="border: 0;" /></a>

sprobujcie u siebie odpalic jak mozecie i powiedziec czy ten kod, ktory podal harryk wyswietla poprawnie..
harryk
eh... w takim razie zmienne, które podałeś są puste.

  1. <?php
  2. $link_lang_en = 'http://adres';
  3. $wybjez_en_alt = 'cos_tam';
  4. $link_lang_de = 'http://adres';
  5. $wybjez_de_alt = 'cos_tam';
  6. ?>
krzyzak_p
aaa zapomnialem podaac kod tych zmiennyc:
  1. <?php
  2. if (!isset($_GET['page'])){
  3. $link_lang_en = 'index.php?page=news&lang=en';
  4. $link_lang_de = 'index.php?page=news&lang=de';
  5. }
  6. else{
  7. $link_lang_en = "index.php?page=" . $_GET['page'] . "&lang=en";
  8. $link_lang_de = "index.php?page=" . $_GET['page'] . "&lang=de";
  9. }
  10. $wybjez_en_alt = "English Version";
  11. $wybjez_de_alt = "Deutsch Version";
  12.  
  13. ?>

sa ustawione od poczatku... Ale nawet z tymi zmiennymi skrypt nie dziala jak powinien (generuje kod taki jak podalem w poprzednim poscie..)
Fipaj
zapomiałeś o zamknięciu else...
krzyzak_p
juz porpawilem w kodzie na forum..
jak bym nie zamknal else, to by mi wyrzucilo blad, albo stronki nie wygenerowalo...
ten bledizk byl przez moje kopiowanie na szybko;]
EDIT:
dobra, juz wiem w czym blad:P zmiennym, ktorych uzywalem nadawalem wartosc dopiero po ich uzyciu.. no i nie wiedzial php jaka wartosc ma nadac - stad pustka:P
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.