![]() |
![]() ![]() |
![]() |
![]()
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
|
|
|
![]()
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ć ![]() |
|
|
![]()
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
|
|
|
![]()
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 |
|
|
![]()
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 ' '. 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!
|
|
|
![]()
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 ', $wp); $wp = str_replace(' z ', ' z ', $wp) ; $wp = str_replace(' i ', ' i ', $wp); $wp = str_replace(' a ', ' a ', $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 :)
![]() |
|
|
![]()
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 ',' z ',' i ',' a '); $wp = str_replace($from, $to, $wp); ?>[/php:1:3a39f7bb1d] |
|
|
![]()
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
![]() ![]() -------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
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!
|
|
|
![]()
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
![]() zresztą dopisując nowe elementy nie powoduje że po raz któryś odpala sie to str_replace ![]() |
|
|
![]()
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 ", " z " => " z ", " i " => " i ", " a " => " a " ); $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... ![]() ![]() 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 :)
![]() |
|
|
![]()
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 :) -------------------- Zalew :: http://jakubzalewski.info
|
|
|
![]()
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
![]() Mysle jednak, ze cos uda mi sie z tego stworzyc ![]() A moze ma ktos jeszcze inne pomysly? -------------------- _odpowiedni dać rzeczy kształt | http://alldesigner.net
|
|
|
![]()
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..."
|
|
|
![]()
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 strtr ![]() [php:1:82cb84871b]<?php $wp = str_replace(array_keys($klucze), array_values($klucze), $wp); ?>[/php:1:82cb84871b] |
|
|
![]()
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 czyms innym" prawda?
To zalatwiloby sprawe. Pozdrawiam -------------------- _odpowiedni dać rzeczy kształt | http://alldesigner.net
|
|
|
![]()
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
![]() 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 ![]() ![]() |
|
|
![]()
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)
![]() Polonistki z UJ, ktore m.in. Go uwielbiaja upominaja sie o to ![]() 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? ![]() -------------------- _odpowiedni dać rzeczy kształt | http://alldesigner.net
|
|
|
![]()
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 ![]() 3m się, chętnie zobaczę tą stronkę ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 05:55 |