ugrás a tartalomhoz

Szövegmezőbe írt szöveg tördelése vendégkönyvben

Anonymous · 2005. Dec. 26. (H), 16.21
sziasztok

olyan problémám lenne.
Egy vendégkönyvben a textarea-ban, hogyan tudom megcsinálni az autómatikus sortörést. Tehát aki beleít a textarea-ba ne kelljen állandóan entert nyomnia ahoz, hogy a megjelenő szöveg is ugyanolyan sorhosszúságó legyen. Tehát a sorhosssz a megjelenő szövegben ugyanakkora legyen mint amekkora a textarea mező hossza.
remélem érthető
köszönöm előre is
 
1

HTML...

janoszen · 2005. Dec. 26. (H), 11.04
A "wrap" attribútum a barátod.

<textarea wrap="physical"></textarea>
Persze, ha a későbbiekben meggondolod magad, akkor komoly hátrány lehet, hogy így vannak eltárolva az adatok, szóval, lehet, hogy inkább utólag, szerver oldalon szeretnéd tördelni...

Egyébként miért akarod a vendégkönyvedben automatikusan tördelni a szöveget? A böngésző megtördeli neked!

Például az egy jó megoldás, hogy az entereket lecseréled </p><p> -re és így írod ki a szöveget:

echo ("<p>" . $vendegkony . "</p>");


Utána CSS-ben a p-nek adsz egy olyat, hogy text-align:justify;
2

<Nincs cím>

Anonymous · 2005. Dec. 26. (H), 12.27
köszönöm!
3

Hamár tördelünk

krey · 2005. Dec. 26. (H), 13.12
Nem tudja valaki véletlenül, hogy egy textarea inputjából milyen szabályos kifejezéssel tudom az entereket kicserélni (bármilyen stringre)?
Próbálkoztam, de inkább más utat választottam a probléma megoldására, mert nem sikerült, mostmár viszont érdekel
4

str_replace?

janoszen · 2005. Dec. 26. (H), 20.10
Üdv!

Minek reguláris kifejezés? str_replace fv. \n-eket kicseréled sortörésekre v hasonlóra.
5

Köszi

krey · 2005. Dec. 26. (H), 21.06
A nagy kedvencemet az ereg-et sajnos képtelen voltam beállítani, hogy ezt megcsinálja nekem. De elvileg a split() is valami hasonlót művel, mint amire nekem szükségem van. (Avagy szétszedem aztán újra összefűzöm).

krey
6

<Nincs cím>

Anonymous · 2005. Dec. 27. (K), 00.43
ereg_replace a te baratod, de str_replace mint elotted irtak jelen esetben jobban megfelel :)
8

HTML

Anonymous · 2005. Dec. 27. (K), 15.57
Mégsem sikerült a wrap vagy az echo ilyetténképpen való használata.
Továbbra sincs sortörés a textareában.
Az echoval beírt változatban a textarea-ban beírta hogy <p></p>
A wrap pedig semmit sem csinált.
9

Minek?

janoszen · 2005. Dec. 28. (Sze), 00.30
De áruld mán el, higy miért akarsz kézzel tördelni? Miért nem elég a felhasználó által beütött enterek figyelembe vétele?
10

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 13.19
A vendégkönyvben ha a felhasználó nem üt entert, akkor kifut a háttérből. Mert a honlapon háttér is van. És van olyan user aki majdan nem üt entert. És akkor kifut a háttérből a szöveg. A szöveg kimenete nincs szövegdobozba rakva. Nekem egy ilyen megoldás is tetszene, hogy egy meghatározott szélességű szövegdobozba rakná a szöveget, és az megtördelné. Tehát pl - width: 300px; - és akkor máris van ami tördelné.
De hogyan kell a kiírást egy szövegdobozba irányítani?
11

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 13.20
mint ahogy itt is látjuk éppen most.
12

kimenet

Anonymous · 2005. Dec. 28. (Sze), 17.14
Én ezt inkább a kimeneti oldalon tördelném. Az adatbázisba bekerül, ahogy akar, de a kiírásnál html+css formázással megakadályoznám, hogy kifusson.
13

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 17.31
http://hu2.php.net/manual/hu/function.wordwrap.php
14

wordwrap

Anonymous · 2005. Dec. 28. (Sze), 18.59
próbálgattam beillesztegetni ide de nem sikerált!
<?php 
      
        $ujsor = "<h1>$nev <br> $email</h1>" 
                  . nl2br($megjegyzes);
                  
        if (is_readable($vendegfile)) { $filetomb = file($vendegfile);}
        else { $filetomb = array(); }

        if (is_writeable($vendegfile)) {

            $regifile = join("", $filetomb);

            $fp = fopen($vendegfile,"w");
            fputs($fp, $ujsor . $regifile);
            fclose($fp);

            $kiiras_rendben = true;
        }
    ?>
15

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 19.32
Biztos jó kódot másoltál be? Csak mert nem találom benne a wordwrap függvényt, és hát így persze, hogy nem működik... :)
16

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 19.44
Azt a kódot másoltam ide amibe be akartam írni. Csak sehogy sem tudtam kitalálni a megoldást, állandóan hibát írt. Bármit próbálok sehogy nem tördeli meg a szöveget a textarea-ban. Tehát a kimeneten.
21

megjelenítés vs. forrás

tiku I tikaszvince · 2005. Dec. 28. (Sze), 22.44
Véletlenül nem lehetséges, hogy a kedves kérdező a böngészőjén megjelenő kimenetet látja, és nem nézi meg a forrást, ahol gyönyörűen betördelve jelenik meg a szöveg?

Szerintme a #17-es hozzászólást alkalmazva elérheted a nirvánát :)
Talán egy kis változtatást lehet érdemes lenne alkalmazni:

... wordwrap(nl2br($megjegyzes), 20, "<br />\n"); ... 
Ez, ugye, először veszi a szöveget a kapott újsor(\n) karaktereket lecseréli HTML sortörésekre, ezután ráengedi a wordwrap függvényt, mely nem lesz tekintettel az újonnan beszúrt <br>karaktersorokra. Szóval én megfordítanám a két függvényt valami ilyesmire:

... nl2br(wordwrap($megjegyzes, 20, "<br />")); ...
Nem próbáltam ki, szóval elképzelhető, hogy óriási hülyeséget írtam. Ha így lenne javítsatok ki!

TikuVoltam
Ma is holnap fekszünk le, mint tegnap
22

megjelenítés vs. forrás

Anonymous · 2005. Dec. 29. (Cs), 13.09
Kipróbáltam ezt is, ez sem működik. A kimeneten ugyanúgy kimegy az explorer oldalán, alsó görgetősávot vonva maga után.
19

Próbáljuk már meg stílusosabban...

janoszen · 2005. Dec. 28. (Sze), 21.03
Üdv!

A problémádra nem az a megoldás, hogy kézzel tördeled az outputot, hanem az, hogy csináld meg rendesen a HTMLt és a CSSt. Mi van akkor, ha felhasználó nagyobb betűket használ, vagy mit tudom én, éppen más betűtípussal írta felül az általad megadottat, mert olyanja nem volt?

Csináltál egy hibát, méghozzá, hogy nem jó kódod és most ezt akarnád egy másik (stílus) hibával palástolni, méghozzá, hogy kézzel beletördeled a tartalmat. Körülbelül ott tartunk, mint a kódhackelős időkben, amikor mindenféle böngészőfüggő trükkökkel próbáltuk meg a lapjainkat úgy kinézetni, ahogy szeretnénk.
7

<Nincs cím>

Anonymous · 2005. Dec. 27. (K), 01.44
http://hu2.php.net/manual/hu/function.nl2br.php
17

Re: #16

Anonymous · 2005. Dec. 28. (Sze), 20.25
Nem nagyon látom a szóban forgó függvény alkalmazásának nehézségeit (pláne, hogy példa is van a manualban, aminél értelmesebben, érthetőbben én sem tudnám megfogalmazni).
<?php

$ujsor = "<h1>".$nev."<br>".$email."</h1>" . wordwrap(nl2br($megjegyzes), 20, "<br />\n");

if (is_readable($vendegfile)) {

	$filetomb = file($vendegfile);

} else {

	$filetomb = array();

}

if (is_writeable($vendegfile)) {

	$regifile = join("", $filetomb);
	$fp = fopen($vendegfile,"w");
	fputs($fp, $ujsor . $regifile);
	fclose($fp);

	$kiiras_rendben = true;

}

/* Nem próbáltam ki, de elvileg menni fog. */

?>
Csak arra kell figyelni, hogy tökmindegy hol éri a sztringben a karakter, aminél törnie kell, ott fogja törni. Magyarul a HTML kódokat sem veszi figyelembe, ha például épp egy link href paraméterénél esedékes a sortörés, szó nélkül szét fogja cseszni a linket... Szóval csak óvatosan ezzel a megoldással is.
18

wordwrap

Anonymous · 2005. Dec. 28. (Sze), 20.57
A nehézség ott kezdődik, hogy az általad beírt változtatásokra nem reagál.
Persze elég egy kicsi hiba én ezt tudom.
És ez működik php5-ben is? Nem lehet hogy nem a koddal van baja hanem mással?

De azért köszi, majd megtalálom ám hogy mi a gondja csak próbálkoznom kell egy kicsit gondolkodni.
Köszi mégegyszer.
20

<Nincs cím>

Anonymous · 2005. Dec. 28. (Sze), 21.19
Természetesen PHP v5.x alatt is megy a dolog.
Egyébként érdemes elgondolkozni a #19-ben írottakon, mert ez az egész valóban csak barbárkodás. Csinálj a szövegnek egy fix keretet, ami megtöri a sorokat és kész. Ilyesmit nem szokás szerver oldalon babrálni... Legfeljebb például olyankor, ha a szövegdoboz mérete viszonylag kicsi kell legyen (pl.: shoutbox, ami tipikusan 100-150 pixel), és egy túl hosszú szó széttolná a dizájnt. Bár ez is kezelhető CSS-el (overflow)...
23

<Nincs cím>

Anonymous · 2005. Dec. 29. (Cs), 13.14
" ilyet nem szokás szerver oldalon babrálni" - ezt írod.

De én nem akarok szerverodalon babrálni. MInt említettem nem értem még eléggé a php-t. Így amikor azt mondod hogy csináljak a szövegnek egy fix keretet sajna csak azt tudom mondani rá, vagyis kérdezni, hogy hogyan csináljam? És ekkor megint visszaértünk oda, hogy segítséget kérek abban is hogy a kimeneten belerakhassam egy keretbe ami majd megtördeli nekem. Végülis ezért jöttem erre a fórumra hogy segítséget kérjek. És félreértés ne essék, - köszönöm a segítséget.
24

<Nincs cím>

Anonymous · 2005. Dec. 30. (P), 00.02
Nem is tudom, mit mondjak... :) Meg ne haragudj, de nyílván való, hogy lövésed sincs a témához, a PHP-ez éppúgy, mint a HTML-hez. Éppen ezért, konkrét megoldás helyett én inkább egy oldalt ajánlanék neked: W3School - XHTML Tutorial. Innen indulj ki és tanulmányozd át töviről-hegyire, gyakorolj, gyakorolj és gyakorolj. Ha ezzel megvagy, csak akkor kezdj el ismerkedni a PHP-vel, kezdd a PHP Manual-al. Ennek az egésznek persze csak akkor van értelme, ha ezzel szeretnél foglalkozni a jövőben (úgy néhány év múlva). Ha nem szeretnél komolyabban elmerülni a témába, szerintem inkább kérj meg valakit, hogy csinálja meg, amit elképzeltél, mert ez neked a pillanatnyi tudásoddal sajnos nem, vagy csak nagyon nehezen fog menni (több energia ráfordításával, mint amennyit ér az egész, vagy népiesebben szólva, többe kerül a leves, mint a hús). Nem akartalak elkeseríteni, ez csak az én személyes véleményem abból kiindulva, ahogy és amilyen kérdéseket tettél itt fel...
25

<Nincs cím>

Anonymous · 2005. Dec. 30. (P), 03.07
ja. még szerencse hogy a te személyes véleményed. Sokan vagytok így? Szent ég.
26

Nem jó eszközzel csinálod.

janoszen · 2005. Dec. 30. (P), 13.33
Üdv!

Nem bántásnak mondom, de én is egyetértek az előtted szólóval. Sajnos az a helyzet, hogy teljesen rossz helyen keresed a megoldást, ami azt bizonyítja, hogy még a HTMLben sem vagy eléggé otthon ahhoz, hogy egy szövegformázást megoldj vele és máris PHPvel foglalkozol. Ismered a jobb kézzel a bal halántékodat vakarod szindrómát? Na, ez pontosan az.

Egy kis elgondolkoznivaló: szerinted, miért fizetnek a PHP programozóknak és webfejlesztő szakembereknek, ha az a szaktudás, amit magukénak mondanak, nem sokkal több, mint amit egy HTML kezdő egy pár óra alatt meg tud tanulni?

Mondok egy példát.

Az általad kívánt kód, ugye, ez lenne:

 <p><b>Név:</b><i>Minta Béla</i></p>
 <p>Ez egy fórum hozzászólás<br />
    amelyet kézzel tördeltél<br />
    a megfelelő hosszra, hogy<br />
    elférjen a dobozodban.</p>
Mint látod, egy csomó kényszerített sortörés van benne. Ez miért nem jó? Azért, mert te egy bizonyos betűtípuson egy bizonyos szövegméret mellett úgy látod, hogy az elfér a dobozban. De mi van, ha nagyobb lesz a szövegméret, mert a felhasználó úgy állította be? Akkor a kimenet így fog kinézni:

Ez egy fórum
hozzászólás
amelyet kézzel
tördeltél
a megfelelő hosszre,
hogy
elférjen a dobozodban.


Szép? Nem. Na, akkor mi rá a jó megoldás? A böngészők a szöveget automatikusan igazítják az őket körülvevő dobozhoz. Tördelik.

Tedd például ezt:

<div class="forum_hozzaszolas">
 <div class="forum_fejlec">
  <span class="forum_cimke">Név:</span>
  <span class="forum_nev">Minta Béla</span>
 </div>
 <div class="forum_tartalom">
  <p>Ez egy fórum hozzászólás amelyet nem tördeltél kézzel és így is elfér a dobozodban.</p>
  <p>Íme még egy bekezdés.</p>
 </div>
</div>
Egy kis magyarázat, ha esetleg nem tudod: a div és span általános HTML tagek, amelyek semmilyen formázó tulajdonsággal nem rendelkeznek, hacsak CSS-sel meg nem formázod.

Ehhez a CSS, amit én írnék:

.forum_hozzaszolas
{
 width:300px; /* A Te hozzászolásod szélessége */
 background-color:a_te_hatterszined;
}

.forum_hozzaszolas .forum_fejlec
{
 background-color:a_te_hatterszined;
}

.forum_hozzaszolas .forum_fejlec .forum_cimke
{
 font-weight:bold; /* Vastag szöveg */
}

.forum_hozzaszolas .forum_tartalom p
{
 text-align:justify; /* Sorkizárt szöveg */
}
Na, lehet nekiesni keresgélni, mi minek felel meg. Én a helyedben azt tenném, hogy minden, a felhasználó által ütött sortörésnél kezdenék egy új bekezdést, persze, miután kiszűrtem az esetlegesen beütött HTML elemeket. Ezáltal egy szép, tiszta megjelenést kapnál.

Ajánlom figyelmedbe: http://www.csszengarden.com/

Nézegesd a kódját egy picit. És mulass jót. :)
27

nem jó eszközzel csinálod

Anonymous · 2005. Dec. 30. (P), 16.06
OK köszi már találtam más fórumot ahol nem kell 26 hozzászólás egy értelmes segítségért. Ezzel részemről a témát lezártam. Sziasztok.
28

Osszad ezt meg velünk kérlek!

Bártházi András · 2005. Dec. 30. (P), 18.05
Én nagyon kiváncsi vagyok, hogy hol van ez, be tudod küldeni a linket?

-boogie-
29

A kodot ide dobhatnád ...

klimakiraly · 2005. Dec. 30. (P), 19.52
Szia!

Ha már elinditottad a forumot kérlek fejezd is be! Ahogy mindenütt szokás, mily meglepő itt is. :-)

Tehát csak egy kod ....

K.K.
30

nemtudom

Anonymous · 2005. Dec. 30. (P), 22.57
nemtudom kinek írtad de én kérdeztema kódot, bár nem kaotam választ. megfelelőt
31

Ha jól sejtem valahol kaptál ...

klimakiraly · 2005. Dec. 30. (P), 23.00
Helló!

Ha jól értem akkor valahol kaptál, Én arra kérdeztem rá...
Vagy még mindig nem megy a dolog, mert télleg segíteni szeretnénk....

K.K.
32

hello hello

Anonymous · 2005. Dec. 30. (P), 23.40
Hello!!

SZval. Van olyan dolog a világon amihez én értek jobban mint mások. Ez nem a PHP hanem teljesen más. Van olyan fórum, ahol a saját hozzáértésemről adok számot. De azon a fórumon is csak akkor írom azt valakiről, hogy nem ért a dologhoz, ha már én megmutattam a hozzáértésemet. Namost az itteni fórumon semmi használhatót nem kaptam a problémámra, csak annyit : rossz a kódom, és nem értek hozzá. Ja és példák sokaságát, amit ha próbáltam, nem változott semmi. Szerintem nem nekem kell tanulnom még, hanem azoknak aki segíteni szeretnének de sajnos nem tudnak.
Örültem, hogy itt lehettem körötökben.

Boldog sikerekben gazdag újévet. Éljen a PHP.
:)
33

Hehe

Dualon · 2005. Dec. 31. (Szo), 02.06
Szerintem nem nekem kell tanulnom még, hanem azoknak aki segíteni szeretnének de sajnos nem tudnak.


Anélkül, hogy kötekedni akarnék: szerintem ezt gondold át még egyszer.
(Útmutatásul csak annyit tennék hozzá, hogy ha ismernéd a fórumot, tudnád, hogy itt páran igencsak tanulságát tették már hozzáértésüknek.)
És neked is boldog új esztendőt!

Dúalon
http://e-arc.hu/
34

<Nincs cím>

suexID · 2005. Dec. 31. (Szo), 11.05
Akkor néhány dolgot én is hagy osszak meg veled:
  • Ha egy fórumon felmerült problémára választ kapsz, illik azt megosztani azokkal, akik esetleg fáradoztak azért, hogy neked segítsenek.
  • Ha segítséget kérsz, de teszem azt a közösség nem tud megoldást a problémádra, nem feltétlenül jelenti azt, hogy a közösség rossz, vagy épp hiányosak az ismeretei. Rengeteg értelmes hozzászólás érkezett és próbáltak téged a jó útra terelni
  • Ne várd el, hogy komolyan vegyenek, ha te sem veszed komolyan a közösséget. Igazán semmibe se kerül regisztrálni és a nickedet vállalva írogatni szerintem, mégis egyfajta tiszteletet fejezel ki vele. Legalábbis az én szememben biztos.
  • Boldog Újévet neked is! :)
35

nem rosszak azok a kodok

klimakiraly · 2005. Dec. 31. (Szo), 14.02
Helló!

Mivel nem adsz infót csak találgatok ...
Neked nem a szöveg tördelés igazából a problémád.
Hanem hogy csak ugy kiömleszted a szöveget a html-be.
Ha bele rakod egy <DIV class=hozzaszolas>ide echo a szöveg</DIV>vagy egy <TABLE><TR><TD>ide echo a szöveg></TD></TR></TABLE> akkor csak a szélességét kell meg add.
És a css-be beleirod .hozzaszolas { width: 300px;} meg a kényszer sortörés parancsot amit én fejből nem tudok azt kész is vagy.

Ha nem erre gondoltál akkor passz.

BÚÉK Mindenkinek aki segített nekem és annak is aki Nem mert nem tudtam értelmessen megfogalmazni a bajom. (Lásd kb. 3 trheadom is át lett nevezve. :-) )

K.K.
36

Kódok...

janoszen · 2005. Dec. 31. (Szo), 16.15
Azt hiszem én több, igen használható megoldást is adtam. Ha ezek nem voltak elég jók, akkor sajnálom, mert nálam ezek mindig működtek. Ezenfelül pedig, ha nem adsz meg, csak annyit, amennyit abban a homályos leírásban adtál, akkor mit vársz? Mivel csinálod az oldalt? Táblázattal? CSS-sel? Vagy valami teljesen más?

Légy szíves, adj egy linket, ahol az oldal van, ahová a kódot be kell ágyazni és akkor tudunk jobban segíteni. És hidd el, nem a PHP a megoldás erre, mint azt már próbáltam megértetni veled.

Az a baj, hogy mondunk rengeteg jó dolgot, de egyik füleden be a másikon ki. Csak a saját mondókádat hajtogatod, hogy PHP. A szövegformázás egyértelműen NEM a PHP dolga. Namost, ha megfogadod a feltehetőleg tapasztaltabb tanácsát, akkor mondj egy címet és hallgasd meg, amit mondani akarunk.

BUÉK
37

nézzük meg, ezen a fórumon hogy oldották meg :)

this.isti · Jan. 5. (Szo), 01.06
hosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveghosszúenternélküliszöveg
Lehet, hogy sehogy :D
38

megoldások

this.isti · Jan. 5. (Szo), 01.18
https://integralvision.hu/hu/irasok/hosszu-szavak-esete-bongeszokkel
39

css word-wrap

this.isti · Jan. 5. (Szo), 01.24
https://webfejlesztes.gtportal.eu/?f0=2_szoveg_13


<style>
p {background-color:#80ffff;}
div {width: 130px; margin:1px;
border:1px solid blue;}
.div1 {word-wrap:normal;}
.div2 {word-wrap:break-word;}
.div3 {word-wrap:normal;}
</style>
...
<body>
<div class="div1">
szóelválasztásminta
</div>
<div class="div2">
szóelválasztásminta
</div>
<div class="div3">
szó<wbr>elválasztás<wbr>minta
</div>
</body>
40

Gratulálok, válaszoltál egy

inf3rno · Jan. 5. (Szo), 12.36
Gratulálok, válaszoltál egy 14 éves kérdésre...