Autor Zpráva
carlosss
Profil *
Ahojte na svoju stranku includujem obsah txt dokumentu v ktorom sa nachadza text+casti zdrojovych kodov. Jedna sa vlastne o teoriu k jazyku XML medzi ktorou sa nachadzaju aj casti xml kodov, ktore sluzia na lepsie pochopenie teorie.

priklad textoveho dokumentu
XML dovoľuje a použitie komentárov, ktoré slúžia napr. na popis určitej časti kódu. Komentár sa zapisuje medzi znaky. Komentár môže obsahovať akékoľvek znaky (v komentároch môžeme používať aj tagy, tie sú však ignorované) okrem znakov --. Komentáre sú tak vhodné aj na dočasné vyradenie časti dokumentu zo spracovania.

príklady správneho zápisu komentárov:

<pre>
<ziak>
<meno>Marek</meno>
<!-- <mesto>Kosice</mesto> -->
</ziak> 
</pre>

problem mam s pradnzmi riadkami, ked je medzi textovymi odstavcami volny riadok tak ho prehliadac ignoru a vsetko pise ako suvisly text, a ked som sa snazil pouzit php funkciu nl2br() tak mi pribudnu elementy <br> aj v ukazkovych zdrojovych kodoch. Chcel by som docielit to aby prazdne riadky v texte boli zachovane ale v zdrojovych kodoch nepribudali elementy <br>, ako by som mohol docielit aby funkcia nl2br bola aplikovana len na text a vsetko to co sa nachadza medzi znackami <pre></pre> nebude nijak zmenene? Za kazdu radu dakujem.
Tori
Profil
IMHO je potřeba i ty zdrojáky převést na entity. Šlo by to např. takhle:
// vše uvnitř <pre> převede na entity
$text = preg_replace_callback('~(?<=<pre>).+?(?=</pre>)~s', function($m) {
        return htmlspecialchars($m[0]);
    }, $text);
// mimo <pre> převede CR/LF na <br>
$text = preg_replace_callback('~(?<=</pre>|^).+?(?=<pre>|$)~s', function($m) {
        return nl2br($m[0]);
    }, $text);
echo $text;

Možná by stálo za to použít některý z parserů na formátovaný plaintext, např. Texy.
carlosss
Profil *
Tori:
Dakujem presne toto som potreboval :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: