Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dlugosc napisu w pikselach
a79rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


czy jest jakas mozliwosc obliczenia dlugosci jaką napis bedzie zajmował w pikselach?
czcionka np. 11px Arial.
potrzebne jest do takiej sytuacji zeby przyciac napis <br />'em jak ktos np. wpisze zlosliwie w formularzu :
33333333333333333333333333333333333333333333333333333333333333...itd..
i wychodzi mi to poza <div>'a .
jesli tekst wpisywany jest normalnie wyrazami w textarea, to jest on łamany, a w przypadku ciągu bez spacji nie jest.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Było pare razy na forum ;-)
Z tego co pamietam to sie nie da

zainteresuj sie:
wordwrap" title="Zobacz w manualu PHP" target="_manual()
Go to the top of the page
+Quote Post
a79rtur
post
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


dziwnie dziala ta wordwrap()

  1. <?php
  2.  
  3. $str=&#092;"dddddddddddd hhhhhhhhhhh hhyyyyy yyyyyyykkkk kkkkkkk99999 9999999f ffffffff
    \";
  4. $str1=wordwrap($str,30,&#092;"<br />\");
  5. echo $str1;
  6.  
  7.  
  8. $str3=&#092;"77777777777777777777777777777777777777777777777777777777777777777\";
  9. $str4=wordwrap($str3,30,&#092;"<br />\");
  10. echo $str4;
  11.  
  12. ?>


w pierwszym przypadku łamie ładnie. w drugim juz nie. tak ze dalej nie wiem za bardzo jak to textarea zabezpieczyć, ma ktos jakis pomysł?
Go to the top of the page
+Quote Post
-unknow-
post
Post #4





Goście







w polu input w formularzu wstaw po prostu maxlength="x" i zamiast x podaj okreslona liczbe znakow, jakie mozna wpisac.
Go to the top of the page
+Quote Post
a79rtur
post
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

Ostrzeżenie: (0%)
-----


to dziala ale dla np. input type="text" , dla <textarea> juz nie.

Ten post edytował a79rtur 8.09.2004, 18:51:18
Go to the top of the page
+Quote Post
-unknow-
post
Post #6





Goście







1. dla div'a nadaj w stylu szerokosc - style="width:x ;"
2. badz zamiast div'ow zrob po prostu tabelke, chociaz nie wiem, czy to cos da, ale warto poprobowac i komorkom nadaj szerokosc
3. moze to smiesznie zabrzmi, ale ja bym tak probowal do skutku - jezeli zadne z tamtych nie pomoze, zrob div'a i nadaj mu szerokosc, a potem w div'ie zrob tabelke i komorkom nadaj szerokosc. dwa pola ograniczone z szerokoscia, to moze akurat zmusi do lamania wierszy... moze
Go to the top of the page
+Quote Post
Andree
post
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.11.2003
Skąd: zewsząd

Ostrzeżenie: (10%)
X----


a może
napierw policzyc znaki do pierwszej spacji i jesli jest ich wiecej niz iles tam to
str_split" title="Zobacz w manualu PHP" target="_manual
i pozniej dac petle zeby wyswietlila tablice?

Ten post edytował Andree 8.09.2004, 23:07:26
Go to the top of the page
+Quote Post
popbart
post
Post #8





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

Ostrzeżenie: (0%)
-----


a79rtur > w funkcji wordwrap daj jako trzeci parametr 1
  1. <?php
  2. $str3=&#092;"77777777777777777777777777777777777777777777777777777777777777777\";
  3. $str4=wordwrap($str3,30,&#092;"<br />\",1);
  4. echo $str4;
  5. ?>

Powinno łamać co 30 znaków.

Ten post edytował popbart 8.09.2004, 23:09:08
Go to the top of the page
+Quote Post
Kuziu
post
Post #9





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


to połamie mu także krótkie słowa.

Myślę że dobrze by było tak:
  1. <?php
  2.  
  3. $tekst = $_POST['tekst'];
  4. $tablica = split(&#092;" \", $tekst);
  5.  
  6. for($i=0; $i<count($tablica); $i++){
  7.   if(strlen($tablica[$i])>20){
  8.     // funkcja która wstawi spację co 20 znaków w tej zmiennej
  9.   }
  10. }
  11.  
  12. $tekst=&#092;"\";
  13. for($i=0; $i<count($tablica); $i++){
  14. $tekst .= $tablica[$i];
  15. }
  16.  
  17.  
  18. ?>


Ten post edytował Kuziu 9.09.2004, 11:37:50
Go to the top of the page
+Quote Post
Andree
post
Post #10





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.11.2003
Skąd: zewsząd

Ostrzeżenie: (10%)
X----


proponuje cos takiego
  1. <?php
  2. $str3=&#092;"77777777777777777777777777777777777777777777777777777777777777777\";
  3.  
  4. $pos=strpos($str3, &#092;" \");
  5.  
  6. echo &#092;"<br><br>\".$pos;
  7.  
  8. if(($pos >30) || (!$pos))
  9. {
  10.         $str4=wordwrap($str3,30,&#092;"<br />\",1);
  11.         echo $str4;
  12. }
  13. else
  14. {
  15.         echo $str3;
  16. }
  17. ?>


pociaciacha string wtedy gdy spacja jest dalej niz 30 znakow od poczatku lub jej nie ma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

problem bedzie jak ktos wpisze np.
Cytat
cos tam ze spacjami a pozniej bbbbbbbbbbbbbbbbbbbbbeeeeeeeeeeeeeeeeeeeeezzzzzzzzzzzzzzzzzzzzzzzzzzzzz

wtedy by trzeba sprawdzac odlegosci miedzy kolejnymi spacjami i jesli jakas jest wieksza niz np. 30 to pociachac od tego miejsca do nastepnej spacji.

Ten post edytował Andree 9.09.2004, 17:55:54
Go to the top of the page
+Quote Post
shpyo
post
Post #11





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


a niemozna wstawic textu w diva i nadac mu wlasciwosci, ze jezeli text wyjdzie za jedo obszar to pojawi sie scroll ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 17:41