Autor | Zpráva | ||
---|---|---|---|
Nox Profil |
#1 · Zasláno: 4. 8. 2008, 18:17:29 · Upravil/a: Nox
Zdravím,
Mám skript a ten dostane jako zdrojová data řetězec a to ve dvou možných formách: buď ručně zadaný ($text="Něco\n\nblabla...") přímo v PHP, odřádkování pomocí vepsaného "\n" | anebo z formuláře z textarei ($text=stripslashes($_POST["ntext"])) Poté na řetězec aplikuji nl2br => to sice převede "\n" na "<br />", ale v obou případech za tím nechá mezeru (bin2hex hlásí "20", takže to je mezera) Tu se pokouším odstranit pomocí, takže řádek je: $text=str_replace("<br /> ","<br />",nl2br($text)); $text=preg_replace("/<br \/>(\s)/i","<br />",nl2br($text)); $text=preg_replace("/<br \/>(\n| )/i","<br />",nl2br($text)); Záhada je, že v případě pevně zapsané hodnoty toto funguje, v případě hodnoty z formuláře je mezera nedobytná, pokud by někdo věděl co s tím, budu mu vděčný Případné další info dodám... formulář <form action="?sekce=napoveda" method="post"> <h3>Data</h3> <textarea name="ntext" rows="18" cols="75"></textarea> <br> <input type="submit" value="GO!" class="velky"> <h3>Result</h3> <div style="border: 3px double rgb(150,150,150);padding: 5px;margin-bottom: 15px"> <?php if(isset($_POST["ntext"])){ $text=stripslashes($_POST["ntext"]); include "../scms_pluginy/Scriptorica/core.php"; } ?> </div> <textarea rows="16" cols="130"><?php echo $text?></textarea> </form> core.php <?php if($_GET["sekce"]=="administrace"){ // pokud nejsou data z formuláře $text="##1Test\n\n*Lotrům* i ;;psům;;\n\nTest\n\n- seznam..(delší text).."; } echo htmlspecialchars(nl2br($text)); $text=preg_replace("/<br \/>(\s)/im","<br />",nl2br($text)); echo "<br /><br />".htmlspecialchars($text); ... |
||
Nox Profil |
#2 · Zasláno: 4. 8. 2008, 19:16:05 · Upravil/a: Nox
Tak už to snad mám => znaky tam byly dva, šmejdi...
$text=str_replace("<br />\r\n","<br />",nl2br($text)); ...nechám to tu otevřené, kdybyste tu chtěli zanechat nějaké moudro:) |
||
Časová prodleva: 16 let
|
0