Jest tylko jeden problem. Czasem np. w postach, występuje wewnętrzny kod HTML. Żeby w ogóle przeszedł trzeba go zakodować:
Kod
$x="<b>przykładowy tekst</b>";
$x=str_replace('&', '&', $x);
$x=str_replace('"', '"', $x);
$x=str_replace('<', '<', $x);
$x=str_replace('>', '>', $x);
echo '<notka>'.$x.'</notka>';
$x=str_replace('&', '&', $x);
$x=str_replace('"', '"', $x);
$x=str_replace('<', '<', $x);
$x=str_replace('>', '>', $x);
echo '<notka>'.$x.'</notka>';
Chciałbym w taki sposób wyświetlić zawartość znacznika '<notka>', tak żeby jej zawartość odzyskała własność HTML.
Jedyny pomysł jaki przyszedł mi do głowy to JavaScript.
(Skracając tak może wyglądać kod strony wydrukowanej przy użyciu XSLa... Chodzi o to żeby zawartości niektórych elementów przywrócić własności HTML.)
Kod
<html><head>
<script type="text/javascript">
<!--
function zmienTeksty(){
var = document.getElementById('notka');
e.innerHTML=e.innerHTML.replace(/>/g, ">").replace(/</g, "<").replace(/&/g, "&").replace(/&/g, "&");
}
-->
</script>
</head>
<body onload="zmienTeksty();">
<p id="notka"><b>echo</b></p>
<p id="notka"><i>hi hi</i></p>
<p id="notka"><u>paf</u></p>
</body></html>
<script type="text/javascript">
<!--
function zmienTeksty(){
var = document.getElementById('notka');
e.innerHTML=e.innerHTML.replace(/>/g, ">").replace(/</g, "<").replace(/&/g, "&").replace(/&/g, "&");
}
-->
</script>
</head>
<body onload="zmienTeksty();">
<p id="notka"><b>echo</b></p>
<p id="notka"><i>hi hi</i></p>
<p id="notka"><u>paf</u></p>
</body></html>
Skrypt jednak nie do końca działa - odkodowuje HTML tylko w pierwszym znaczniku oznaczonym id="notka".
a ) jak zrobić żeby ten skrypt działał we wszystkich miejscach?
B ) czy jest jakieś lepsze rozwiązanie tego problemu?