Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pojedyncze litery na końcu linijek...
grzesgracz
post 3.05.2004, 19:33:58
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.02.2004

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


Witam!
Mam takie pytanie: czy da się zrobić, żeby pojedyncze literki takie jak: w, a, o, z, nie pozostawały nigdy na końcu linijki jako ostatnie? To rzecz jasna błąd w pisowni, którego chciałbym uniknąc na stronie...
Moze w css jest cos takiego?
Bede wdzieczny za pomoc
Pozdrawiam,
Grzesiek


--------------------
_odpowiedni dać rzeczy kształt | http://alldesigner.net
Go to the top of the page
+Quote Post
Gonzo
post 3.05.2004, 19:48:13
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.08.2003

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


O ile używasz czcionki o stałej szerokości znaku, to chyba nie będzie większych problemów.

Najpierw funkcją explode() zamieniasz string z tekstem na tablicę. Potem w pętli lecisz sobie licząc, które słowo zostanie na końcu. Jeżeli jest krótsze od powiedzmy 4 znaków, wstawiasz przed nim <br>. Na koniec zamieniasz wszystko z powrotem na tekst i jazda.

Oczywiście musisz to sobie dopracować smile.gif.
Go to the top of the page
+Quote Post
grzesgracz
post 3.05.2004, 20:14:38
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.02.2004

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


Hmm...
Nie o taki sposób mi chodziło :wink: Nie uzywam czcionki o regularnych literach, ani nie wiem, w tabelkach o jakiej szerokosci bedzie wyswietlany tekst. Dzieki.


--------------------
_odpowiedni dać rzeczy kształt | http://alldesigner.net
Go to the top of the page
+Quote Post
cichy
post 3.05.2004, 20:35:06
Post #4





Grupa: Przyjaciele php.pl
Postów: 197
Pomógł: 0
Dołączył: 9.09.2003
Skąd: z Marsa

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


Raczej nie możliwe do wykonania.
Bo niby skąd skrypt miałby wiedzieć gdzie wstawić <br /> skoro nie wie gdzie tekst w danej linii sie zakończy?
Jedyna rada jest taka by pisać tekst w miare dokładnie.

Pozdro
Go to the top of the page
+Quote Post
zombie
post 3.05.2004, 23:05:45
Post #5





Grupa: Zarejestrowani
Postów: 296
Pomógł: 0
Dołączył: 9.05.2002
Skąd: Warszawa

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


no niekoniecznie. można by spróbować każdą spację po znaku krótszym, niż 3 znaki zamienić na '&nbsp;'. Zawsze będą wtedy zrzucane o linijkę niżej... Chyba lepsze bedzie [manual:bc7b1f521b]preg_match[/manual:bc7b1f521b], niż [manual:bc7b1f521b]explode[/manual:bc7b1f521b]


--------------------
audaces fortuna iuvat!
Go to the top of the page
+Quote Post
Bakus
post 3.05.2004, 23:22:03
Post #6


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

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


Ja w jednym ze skryptów zrobiłem zamianę przez:[php:1:1aada83098]<?php
$wp = str_replace(' w ', ' w&nbsp;', $wp);
$wp = str_replace(' z ', ' z&nbsp;', $wp) ;
$wp = str_replace(' i ', ' i&nbsp;', $wp);
$wp = str_replace(' a ', ' a&nbsp;', $wp);
?>[/php:1:1aada83098]Wiem, że jest to mało wydajne, ale jest proste, czytelne i daje oczekiwane rezultaty...


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
Bora
post 3.05.2004, 23:45:18
Post #7





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

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


Powinno być szybciej
[php:1:3a39f7bb1d]<?php
$from=array(' w ',' z ',' i ',' a ');
$to=array(' w&nbsp;',' z&nbsp;',' i&nbsp;',' a&nbsp;');
$wp = str_replace($from, $to, $wp);
?>[/php:1:3a39f7bb1d]
Go to the top of the page
+Quote Post
Bakus
post 3.05.2004, 23:50:00
Post #8


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

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


Przy moim rozwiązaniu skrypt wykonuje się w czasie 0.08-0.09 a przy twoim 0.07-0.08 winksmiley.jpg rzeczywiście wielka róźnica winksmiley.jpg


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
zombie
post 3.05.2004, 23:56:56
Post #9





Grupa: Zarejestrowani
Postów: 296
Pomógł: 0
Dołączył: 9.05.2002
Skąd: Warszawa

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


... z tym, że ta metoda nie daje pewności. poza tym brakuje mi tu 'o', 'u', 'na', 'po', 'do', 'od' ... właściwie może sie pojawić każda litera. Np. 'A. Kwaśniewski'


--------------------
audaces fortuna iuvat!
Go to the top of the page
+Quote Post
Bora
post 4.05.2004, 00:02:24
Post #10





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

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


oczywiście że będzie to niewielka różnica ale zawsze powinno sie pisać żeby było jak najszybciej tongue.gifP
zresztą dopisując nowe elementy nie powoduje że po raz któryś odpala sie to str_replace tongue.gifP.
Go to the top of the page
+Quote Post
Bakus
post 4.05.2004, 03:09:43
Post #11


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

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


z kolei przy większej ilości fraz do zamiany (co zasugerował zombie) wpisywanie tego w 2 tablice może spowodować, przy odrobinie nieuwagi kraksę...
lepiej z punktu widzenia czytelności i łatwości zarządzania zrobić to tak:[php:1:ba1d5f7dfb]<?php
$klucze = array( // tablica z tym co mamy zamieniać
" w " => " w&nbsp;",
" z " => " z&nbsp;",
" i " => " i&nbsp;",
" a " => " a&nbsp;"
);

$co = $naco = array(); //tablice robocze

while (list ($key, $val) = each ($klucze))
{ // przepisujemy tablice do innej formy
$co[] = $key;
$naco[] = $val;
}
unset($klucze); // tablica klucze nie jest już potrzebna... mamy 2 nowe tablice...

// zamieniamy co trza
$wp = str_replace($co, $naco, $wp);
?>[/php:1:ba1d5f7dfb]Taką tablicę można łatwo uzupełniać i jest ona czytelna... winksmiley.jpg Chyba poprawie to u siebie na takie... winksmiley.jpg
O... Właśnie... Można całość kodu jaki napisałem wrzucić do funkcji i uzupełnić o brakujące pozycje i będzie to można dołączać do bibliotek funkcji w skryptach, gdzie możliwe jest wprowadzanie tekstów...


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
zalew
post 4.05.2004, 05:20:51
Post #12





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

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


jest 6rano a nie spalem i jeszcze mam robote, a wiec stac mnie jedynie na pseudokod.. bo pomysl mi sie wydaje ciekawy, wiec oto moja spiaca koncepcja rozwiazania ;)..

[php:1:9e7d942c80]<?php
$exp = 70; //przewidywana liczba liter w linijce
$drops = array ('w', 'z'....); // tablica slow do zrzucenia

function dropSingles ($exp, $drops) {
$lines = 'sth'; /*
tablica z rozbicia calego tekstu na co 70 znakow
plus opcja ze co natkniecie na nowy akapit czyli <p> lub <br> resetuje, zeby nie pokielbasilo... nie jestem w stanie teraz napisac jej dzialania
*/
for ($i=0; $i<count($lines); $i++) {
$words = explode(' ', $lines[$i]);
$lastWord = $words[count($words)];
/* lapie ostatnie slowo i sprawdza czy jest jednym z szukanych przyimkow
jak tak to zastepuje*/
if (in_array($lastWord, $drops ) {
$words[count($words)] = "<br />".$lastWord;
}

$newTxt .= implode($words, ''); //skaldamy znow txt do kupy
}
return $newTxt;
}
?>[/php:1:9e7d942c80]

penwie sa bledy ale moze udalo mi sie przedstawic zamysl :)


--------------------
Go to the top of the page
+Quote Post
grzesgracz
post 4.05.2004, 09:18:06
Post #13





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.02.2004

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


Wielkie dzieki wszystkim za pomoc, widze, ze jest z czego wybierac (choc liczylem na to, ze sa gotowe funkcje w css, albo php biggrin.gif )
Mysle jednak, ze cos uda mi sie z tego stworzyc smile.gif
A moze ma ktos jeszcze inne pomysly?


--------------------
_odpowiedni dać rzeczy kształt | http://alldesigner.net
Go to the top of the page
+Quote Post
DeyV
post 4.05.2004, 09:25:17
Post #14





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Cytat
z kolei przy większej ilości fraz do zamiany (co zasugerował zombie) wpisywanie tego w 2 tablice może spowodować, przy odrobinie nieuwagi kraksę...
lepiej z punktu widzenia czytelności i łatwości zarządzania zrobić ....


Cytat
string [manual:f8d82ef413]strtr [/manual:f8d82ef413]( string str, array replace_pairs)
[php:1:f8d82ef413]<?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>[/php:1:f8d82ef413]


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Ozzy
post 4.05.2004, 10:25:44
Post #15





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


Cytat
Taką tablicę można łatwo uzupełniać i jest ona czytelna...

Nie łatwiej tak (pomijając ten strtrsmile.gif) ?
[php:1:82cb84871b]<?php
$wp = str_replace(array_keys($klucze), array_values($klucze), $wp);
?>[/php:1:82cb84871b]
Go to the top of the page
+Quote Post
grzesgracz
post 4.05.2004, 21:22:46
Post #16





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.02.2004

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


Myślę, że przydałoby się coś, co zamieniałoby w kazdym tekscie frazy typu: "cos tam z czyms innym" na "cos tam z&nbsp;czyms innym" prawda?
To zalatwiloby sprawe.
Pozdrawiam


--------------------
_odpowiedni dać rzeczy kształt | http://alldesigner.net
Go to the top of the page
+Quote Post
Gonzo
post 5.05.2004, 15:44:16
Post #17





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.08.2003

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


Jak na razie to każdy próbuje tylko inaczej zrobić (czytaj: zapisać) dokładnie to samo biggrin.gif. Hehe, moim zdaniem raczej dużo tutaj nikt nie wykombinuje, jeżeli nie użyjesz czcionki monotypicznej.

BTW: po co ci w ogóle coś takiego :?: Wydaje mi się, że we własnym serwisie nie jest ważna aż taka zabawa w 'literki'. Owszem, ortografia, interpunkcja, język... Ale bez przesady smile.gif. Nie piszesz w końcu do urzędu biggrin.gif.
Go to the top of the page
+Quote Post
grzesgracz
post 5.05.2004, 15:49:08
Post #18





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.02.2004

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


Robie oficjalna strone jednego z polskich artystow... (ostatnio BARDZO popularnego) smile.gif
Polonistki z UJ, ktore m.in. Go uwielbiaja upominaja sie o to snitch.gif wiec chcialem cos takiego sprobowac...
Tak swoja droga, to nie wierzylem, ze nie ma gotowej funkcji w zadnym jezyku, ktora by na takie rzeczy zwazala...

Dzieki, za pomoc

PS: Na pewno nasuwa sie pytanie: czyja to strona? snitch.gif hehehe, jak skoncze, dam znac, choc juz powoli w sieci krazy...


--------------------
_odpowiedni dać rzeczy kształt | http://alldesigner.net
Go to the top of the page
+Quote Post
Gonzo
post 5.05.2004, 17:55:40
Post #19





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.08.2003

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


No wiesz... Ja to bym się zdziwił, jeżeli coś takiego by istniało... Przecież parser wyrzuca ci po prostu zwykły tekst. php wcale nie interesuje, jak to będzie wyglądało w przeglądarce (przecież to dopiero ona następnie interpretuje otrzymany kod).

Mi się podoba pomysł Zalewa. Jeśli bardzo zależy ci na osiągnięciu tego efektu, może spróbuj użyć tego kodu (po kilku przeróbkach smile.gif ).

3m się, chętnie zobaczę tą stronkę smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 05:55