RSS

zapisz się: RSS Artykuły

szukaj

& zapisywane za pomocą encji

Komentarze 0

Encja ampWłaściwie nie jest to błąd tylko niedociągnięcie. Chodzi mi o to, że pisząc tekst w sNews i używając znaku "&", to jest on zapisywany za pomocą encji. To znaczy, że za każdym razem, gdy użyjemy "&" zostanie on zapisany w formie "&".

Nie byłoby w tym nic nadzwyczajnego, jednak co jeśli chcemy napisać fragment kodu (x)html? A wiadomo przecież, że użycie znaków "<" oraz ">" w oknie wpisywania tekstu interpretowane jest po publikacji jako kod (x)html - znak otwierający i zamykający. Należy te znaki zapisać w takim razie za pomocą encji.

Tu zaczynają się schody, ponieważ każda encja zaczyna się od znaku "&". A jak już wspomniałem sam ten znak automatycznie jest zamieniany na encję. Do czego to prowadzi? Posłużę się przykładem. Chcemy wpisać dany fragment kodu xhtml za pomocą encji:

<div>
 <ul>
   <li>Tekst 1</li>
   <li>Tekst 2</li>
 </ul>
</div>

W podglądzie wpisu będzie wszystko wyglądało normalnie. Jednak po opublikowaniu wpisu ujrzymy taki fragment kodu:

&lt;div&gt;
 &lt;ul&gt;
   &lt;li&gt;Tekst 1&lt;/li&gt;
   &lt;li&gt;Tekst 2&lt;/li&gt;
 &lt;/ul&gt;
&lt;/div&gt;

Każdy znak "&" w naszej encji został zamieniony na encję. Jak to dziwnie brzmi ;) Aby można było pisać za pomocą encji należy zmienić fragment w pliku snews.php odpowiadający za zmienianie "&" w encję. Szukamy w takim razie takiej linijki:

if(substr_count ($fulltext, '&')>0){$fulltext = str_replace('&', '&amp;', str_replace('&amp;', '&', $fulltext));}

Ten wiersz prawdopodobnie odpowiada za zamianę "&" na encję. Można go usunąć, aby było wyświetlane normalne "&". Jednak lepiej jest zakomentować tę linijkę. Jest to po to, aby widzieć jakie zmiany zrobiliśmy w snews.php. Komentujemy linijkę w ten sposób:

//if(substr_count ($fulltext, '&')>0){$fulltext = str_replace('&', '&amp;', str_replace('&amp;', '&', $fulltext));}

Po tym zabiegu można pisać już encje. Przykładowe kody (x)html będą wyglądać poprawnie.

Podziel się

Bookmark and Share

Komentowanie zostało zablokowane