![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
potrzebuje funkcji, ktora dzieli długi string na mniejsze cześci, oddzielajac je spacjami,
chodzi o to, ze mam na swojje stronie komentarze, i nie chec, żeby wsyztsko mi sie rozjeżdżało, jeśli jakiś imbecyl wpisze sto piećdziesiat wykrzykników nie rozdzielajac ich spacją. najbardzije mi zalezy an fukcji, która pobierała by cały komentarz, analizowała każdy z jego wyrazów, i jesli jakiś jest dłuższy od powiedzmy 40 znaków, to wstawia w środek spacje. nie mam kompletnie pomysłu, jak sie do tego zabrać... |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
A takie cos nie pomoże
Kod $komentarz="fsdfsdfsdfsdf fsdfsdfsdfsdf fsdfdsf";
$komentarz=explode(" ",$komentarz); for($x=0;$x<count($komenarz);$x++){ if (strlen($komentarz[$x])>40) $komentarz[$x]=substr($komentarz[$x],0,40); print $komenarz[$x]." "; } Ten post edytował wipo 29.09.2006, 10:43:05 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chyba mozna prosciej:
wordwrap
Ten post edytował myth 29.09.2006, 10:56:00 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 1 Dołączył: 26.07.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Polecam ci dwie z moich ulubionych funkcji explode" title="Zobacz w manualu php" target="_manual oraz implode" title="Zobacz w manualu php" target="_manual
explode stworzy ci ze stringa tablice "lamiac" go w odpowiednich miejsach np. spacji pozniej petelka sprawdzajaca dlugosc kazdego z wyrazow i wsio ![]() -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
ok, teraz doszedł mi problem taki, że chciałbym, jak user napisze adtres strony, w stylu www.wp.pl, to zeby system wyswietlal to jako napis 'LINK', ktory mozna kliknac, i on przenosi na dana strone. napisałem fukcje
Kod <?php function DzielString($string) { $string = strip_tags($string); $table = explode(" ", $string); $count = count($table); for ($i=0; $i<=$count; $i++) { if (ereg ("www.", $table[$i])) { $table[$i] = '<a href=http://' .$table[$i] .' target=_blank>link</a>'; } elseif (ereg ("http://", $table[$i])) { $table[$i] = '<a href=' .$table[$i] .' target=_blank>link</a>'; } else { $table[$i] = wordwrap($table[$i], 35, ' ', 1); } } $string = implode(" ", $table); $string = addslashes($string); return $string; } ?> i wszystko by było cacy, ale problemy pojawiaja sie, jak w okolicach linku pojawia sie znak nowej linkii. zalezy mi na tym, aby znaki nowej linii zostały, wiec nie moge po porstu ich skasować. przyklad: gdy user wpisze: bleble www.wp.pl bleble powinno wyskoczyc: bleble link bleble w czym link klikalny. a wyskakuje: bleble bleble target=_blank>link i prowadzi do strony 'http://www.wp.pl<br/' jak pozbyś sie znakow nowej linii tylko w okolicach linku? Ten post edytował budzyk 30.09.2006, 11:18:52 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po co przelatujesz po kazdym wyrazie osobno?
1. do wordwrap'a wsadz caly string 2. do zamiany linka zastosuj preg_replace |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
tak, tylko wtedy jak uzytkownik poda linka
dłuższego niż 35 znaków, to wordwrap go podzieli. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
To walidator linków proponuje zrobić
Albo zakazać wstawiania linków i je wyrzucać z formularza -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
z wyrzucaniem nie było by porblemu, ale chodzi mi właśnie o to, zeby były, nawet jak beda wadliwe, to nie przeszkadza, jesli zamieniaja sie na wyraz LINK. istnieją linki które mają wiecej niż 35 znaków, wiec chodzi mi głównie o to, jak pozbyć się tych znaków końca linii.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
No to przed wordwrapem zamień znalezione linki na jakieś zmienne np !LINK1! następnie podziel string a pożniej zamień zmienne !LINK1! na właściwe linki.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:01 |