| Autor | Zpráva | ||
|---|---|---|---|
| liborse Profil |
#1 · Zasláno: 28. 9. 2007, 23:16:49
Dobrý den,
mám (zřejmě) jednoduchý problém. Mám formulář a v něm jednu kolonku "Adresa", uživatel do ní vyplní adresu, přičemž logicky odentruje za každým řádkem adresy. Potíž je v tom, že když toto zpracuji funkcí mail(), tak se řádkování ztratí. Potřebuji tedy jednoduše převést znak řádkování na tag <BR> (ale nevím, jaký zástupný znak se používá pro znak odřádkování. Data z formuláře posílám PHP skriptu. Nevíte někdo, jak se s tím poprat? Díky |
||
| Alphard Profil |
#2 · Zasláno: 28. 9. 2007, 23:27:11
fce nl2br();
|
||
| DFly Profil |
#3 · Zasláno: 30. 9. 2007, 02:37:07 · Upravil/a: DFly
ztratit by se to nemelo - ve fci mail() to normalne funguje a do HTML viz predchozi
|
||
| nightfish Profil |
#4 · Zasláno: 30. 9. 2007, 08:58:32
ztratit by se to nemelo
ono se to neztratí, ale když mailu nastavíš content/type na text/html, tak se samozřejmě odřádkování udělané jinak než pomocí <br> ignoruje (stejně jako v HTML stránkách) - pokud ovšem není třeba v <pre>..</pre> |
||
| liborse Profil |
#5 · Zasláno: 30. 9. 2007, 16:30:53
Tu funkci nl2br samozřejmě znám, ale s tou mi to nefunguje. Přijde mi, že řádkování se "ztratí" už při zadávání ve formuláři. Sice jsem si nastavil políčko, kde se dá odentrovat, ale asi je tam něco blbě....
|
||
| shamania Profil |
#6 · Zasláno: 2. 10. 2007, 10:33:25 · Upravil/a: shamania
ale nevím, jaký zástupný znak se používá pro znak odřádkování
"\n" |
||
|
Časová prodleva: 10 dní
|
|||
| Freeze Profil * |
#7 · Zasláno: 12. 10. 2007, 20:44:36
Řeším něco podobného ... akorát s tím, že potřebuji v tom zadaném textu něco nahradit - chtěl jsem použít
preg_replace('/[upr](.*?)[/upr]/i', '<span class="upr">$1</span>', $p_text); ale zastupny znak . mi bohuzel nesebere konce radku a tudiz text '[upr] sgb [/upr]' se zpracuje, ale '[upr] sgb ags[/upr]' už ne. Neví někdo jak vyřešit toto? :)) |
||
| DoubleThink Profil * |
#8 · Zasláno: 12. 10. 2007, 21:13:50
Freeze
Použij modifikátor: m (PCRE_MULTILINE) |
||
| Freeze Profil * |
#9 · Zasláno: 12. 10. 2007, 21:28:31
Takze to bude vypadat takto : preg_replace('/[upr](.*?)[/upr]/im', '<span class="upr">$1</span>', $p_text);
Dik moc :) |
||
| Freeze Profil * |
#10 · Zasláno: 12. 10. 2007, 21:50:22
Hm... ale nefungoval to, tak jsem si to našel ... má se použít modifikátor s .
cituji: i ignore case nerozlišování malých/velkých písmen s single line . odpovídá i znaku (nový řádek) m multiple lines ^/$ odpovídá i začátku/konci každého řádku x extended bílé znaky a komentáře (znaky vpravo od #) jsou ignorovány g global match hledány všechny části řetězce, které odpovídají regulárnímu výrazu (z regularnivyrazy.info) |
||
|
Časová prodleva: 6 dní
|
|||
| Psanec Profil * |
#11 · Zasláno: 18. 10. 2007, 22:15:01
$neco = str_replace("
"," <br> ", $neco); //nové řádky nahradí <br>
|
||
|
Časová prodleva: 1 rok
|
|||
| Kocmi Profil |
#12 · Zasláno: 7. 2. 2009, 15:22:39
Dobrý den,
mám podobný problém, ve formuláři uživatel napíše vzkaz, který se uloží do databáze. Jenže když jej chci zobrazit, třeba jako příspěvek, nezobrazí se to tak, jak to uživatel napsal. "Ztratí se" řádkování, když někde napsal hodně mezer, tak se zobrazí jen jedna, prostě normání formátování HTML. Potřeboval bych poradit co s tím mám udělat, třeba jestli existuje nějaká fce v PHP, CSS, nebo HTML co s \n zalomí řádek a když někde bude třeba 10 mezer, tak je zobrazí všechny. Kdybych použil funkci nl2br() sice by se mi to řádkovalo, ale nic to neudělá s těmi mezerami. A také tato funkce nahradí konce řádků za <br />, ale já mám stránky v HTML a pak to není validní. Napadlo mě použít funkci něco jako: str_replace("\n", "<br>", str_replace(" ", " ", $prispevek));Ale zdá se mi to hodně neohrabané. Neznáte nějaké jiné řešení? |
||
| AM_ Profil |
#13 · Zasláno: 7. 2. 2009, 15:27:51
str_replace můžeš předávat pole, takže:
str_replace(array("\n", " "), array("<br>", " "), $prispevek)nebo alespoň dávat každý do nového příkazu, vrstvit je na sebe tak, jak to děláš ty, je trochu nepřehledné. Nebo můžeš použít HTML tag <pre>, který zachovává textové formátování, popřípadě si ho patřičně nastylovat, aby odpovídal zbytku dokumentu. |
||
| _es Profil |
#14 · Zasláno: 7. 2. 2009, 15:27:51
|
||
| Kocmi Profil |
#15 · Zasláno: 7. 2. 2009, 15:43:28
Aha tak o tom <pre> jsem nevěděl, tak děkuji už mi to funguje
|
||
|
Časová prodleva: 8 měsíců
|
|||
| strejda Profil * |
A ještě:
<?php
$arr = array("1" => "A","2" => "B","3" => "C","B" => "D");
$word = "ZBB2";
echo strtr($word,$arr);
?> Příjde mi to jako elegantní řešení, navíc to pole se dá kdykoli znovu použít pro "čištění" dalšího řetězce. (zdroj: cz2.php.net/str_replace) Ještě drobný poznatek: Nestačí se zbavit \n obdobné je i \r . Nevíte někdo o přehledu všech takových zástupných značek(\n,\r, \t, \0, \x, \s, .. ) co zná PHP? Znám jenom dvě z nich :-( |
||
|
Časová prodleva: 16 let
|
|||
0