Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Zamiana imion z mianownika na wołacz., np. Piotr > Piotrze, Wiesław > Wiesławie
Zdzisiu
post 16.12.2005, 20:44:43
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 16.12.2005

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


Szukam skryptu ktory bedzie zamienial w locie imiona z mianownika na wolacz.
Macie pomysl jak to zrobic?

Mam w tej chwili baze danych ok 1200 imion razem z datami imienin. Chcialbym na stronie zrobic powitanie typu:

Witaj Piotrze, masz dzis imieniny.
Go to the top of the page
+Quote Post
chmolu
post 16.12.2005, 21:47:38
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


Z tym może być bardzo ciężko. Język polski nie jest zbyt logiczny, więc i pod tym względem ciężko będzie znaleźć jakąś regułę, która umożliwi ci stworzenie jakiegoś uniwersalnego kodu.
Go to the top of the page
+Quote Post
Kshyhoo
post 16.12.2005, 21:59:02
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Raczej gotowca nie znajdziesz.A może pokombinoweć? Np:
  1. <?php
  2. $tablica["Piotr"]="Piotrze";
  3. $tablica["Jarosław"]="Jarosławie";
  4. $tablica["Katarzyna"]="Katarzyno";
  5. ?>

Albo:
  1. <?php
  2. define("_Piotr","Piotrze");
  3. define("_Jarosław","Jarosławie");
  4. define("_Katarzyna","Katarzyno");
  5. ?>


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 16.12.2005, 22:28:04
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


ciężko tylko ze słownikiem chyba... no bo jednak trzeba samemu napisać
Go to the top of the page
+Quote Post
kszychu
post 16.12.2005, 23:42:45
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Można poszukać zależności i oprogramować tylko wyjątki. Np, żeńskie kończą sięwszystkie na "a" i zamieniają na "o". Czyli we wszystkich imionach konczących się na a zamieniasz a na o.
Gorzej z męskimi, ale też można poszukać zależności.

Męskie zakończone na "r" - dodajemy "ze" (Piotr - Piotrze), na 'd' - dodajemy "zie" (Bernard - Bernardzie), zakończone na inne spółgłoski - dodajemy "ie" (Krzysztof - Krzysztofie).

No i to by chyba załatwiało jakieś 95% przypadków, nie? A może wszystkie?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Kshyhoo
post 16.12.2005, 23:48:44
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Za dużo kombinacji i możliwości pomyłki. Bo choćby imię "Maria"...

Ten post edytował Kshyhoo 17.12.2005, 16:03:28


--------------------
Go to the top of the page
+Quote Post
kszychu
post 16.12.2005, 23:51:36
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(Kshyhoo @ 2005-12-16 23:48:44)
Za dużo kombinacji i możliwości pomyłki. Bo choćby imię "Maria"...

blink.gif Maria - Mario: zasada jak dla wszystkich żeńskich.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Kshyhoo
post 16.12.2005, 23:56:35
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jan Maria Rokita => Janie Maria Rokito ? O to mi chodzi.


--------------------
Go to the top of the page
+Quote Post
kszychu
post 17.12.2005, 00:01:34
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(Kshyhoo @ 2005-12-16 23:56:35)
Jan Maria Rokita => Janie Maria Rokito ? O to mi chodzi.

thumbsupsmileyanim.gif Ale dałeś do pieca! Myślałem, że z krzesła spadnę!
Poza tym to jużnieaktualne, bo pan Rokita używa teraz tylko i mienia Jan.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Kshyhoo
post 17.12.2005, 00:06:26
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To miał być przykłąd. No to niech będzie Maria Kowalski...


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 17.12.2005, 00:13:24
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


Prawdopodobnienstwo jest takie jak nazwanie kobiety męskim imieniem...
Go to the top of the page
+Quote Post
kszychu
post 17.12.2005, 00:13:29
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(Kshyhoo @ 2005-12-17 00:06:26)
To miał być przykłąd. No to niech będzie Maria Kowalski...

A to już leprzy przykład. Obrazuje, że co drugi facet w polsce nosi żeńskie imię. To wyjątki. Sytacje, gdy pierwsze imię nie kończy sięna "a", a drugie kończy można łatwo wychwycić (o ile chcemy przechowywac w ogóle drugie imię) i nie odmieniać wtedy drugiego imienia.

W sytuacji gdy facet na na pierwsze jakieś żeńskie imię, niech liczy się z tym, że jego imię jest odmieniane jako żeńskie.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Kshyhoo
post 17.12.2005, 00:26:02
Post #13





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Myślałem o czymś takim:
  1. <?php
  2. @ $sql_connect= mysql_pconnect("localhost" , "root" , "");
  3. if(!$sql_connect)
  4. {
  5. echo "Próba połączenia z bazą danych nie udana, spróbuj później.";
  6. }
  7.  
  8. $_mysql_query = mysql_query ("SELECT imiona FROM imieniny WHERE data='0000-" . date("m") . "-" . date("d") . "'" )
  9.  or die ( "Dzisiaj nie ma imienin!" );
  10.  $imiona = mysql_result ( $_mysql_query , 0 );
  11.  
  12. $tablica["Adelajda"]="Adelajdo";
  13. $tablica["Alina"]="Alino";
  14. $tablica["Katarzyna"]="Katarzyno";
  15.  
  16. $tekst = "$imiona! Masz dziś imieniny!";
  17.  
  18. while (list($i, $wartosc) = each($tablica)) {
  19. $tekst = str_replace($i, "$wartosc", $tekst);
  20. }
  21.  
  22. echo $tekst;
  23. ?>


--------------------
Go to the top of the page
+Quote Post
andrzejb
post 17.12.2005, 19:12:24
Post #14





Grupa: Zarejestrowani
Postów: 93
Pomógł: 1
Dołączył: 12.08.2005

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


przy rejestracji uzytkownika daj zeby wpisalswoje imie w wolaczu tongue.gif winksmiley.jpg to jest przerost tresci nad formą ogolnie


--------------------
web lowcy.com.pl gg 1675677
Go to the top of the page
+Quote Post
Levabul
post 17.12.2005, 21:57:29
Post #15





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


FUNKCJA EDYTOWANA

Właśnie to napisałem tak z ciekawości powinno działać w 99% przypadków jeżeli nie w 100 biggrin.gif (nie miałem czasu testować tongue.gif). Wiem ze rozwiazanie nie jest optymalne ale nie miałem czasu na optymalizację ;/

  1. <?php
  2. function wolacz ($imie) {
  3. if (substr ($imie, -1, 1) == 'a')
  4. return $imie = substr ($imie, 0, -1).'o';
  5. elseif (substr ($imie, -3, 2) == 'ie')
  6. return substr ($imie, 0, -3).substr ($imie, -1, 1).'u';
  7. elseif (substr ($imie, -2, 1) == 'e')
  8. return substr ($imie, 0, -2).substr ($imie, -1,1).'u';
  9. elseif (substr ($imie, -1, 1) == 'r')
  10. return $imie.'ze';
  11. elseif (substr ($imie, -1, 1) == 'd')
  12. return $imie.'zie';
  13. elseif (substr ($imie, -1, 1) == 'k' || substr ($imie, -1, 1) == 'l' || substr ($imie, -1, 1) == 'g' || substr ($imie, -1, 1) == 'h' || substr ($imie, -1, 1) == 'j' || substr ($imie, -1, 1) == 'l')
  14. return $imie.'u';
  15. elseif (substr ($imie, -1, 1) == 't')
  16. return substr($imie, 0, -1).'cie';
  17. elseif (substr ($imie, -1, 1) == 'm' || substr ($imie, -1, 1) == 'n' || substr ($imie, -1, 1) == 'b' || substr ($imie, -1, 1) == 'c' || substr ($imie, -1, 1) == 'f' || substr ($imie, -1, 1) == 'p' || substr ($imie, -1, 1) == 's' || substr ($imie, -1, 1) == 'z')
  18. return $imie.'ie';
  19. elseif (substr ($imie, -2, 2) == 'ów')
  20. return substr ($imie, 0, -2).'owie';
  21. else
  22. return $imie;
  23. }
  24. ?>


Ten post edytował Levabul 18.12.2005, 12:50:10


--------------------
Go to the top of the page
+Quote Post
VGT
post 18.12.2005, 17:20:00
Post #16





Grupa: Zarejestrowani
Postów: 63
Pomógł: 9
Dołączył: 19.11.2004
Skąd: Iława

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


Grzegorz -> Grzegorzie
Daniel -> Danlu
Tomasz -> Tomaszie

coś nie bardzo winksmiley.jpg
Chyba jednak nie da się stworzyć na tyle uniwersalnej funkcji by zadziałała zawsze.
Go to the top of the page
+Quote Post
Levabul
post 18.12.2005, 19:28:29
Post #17





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


FUNKCJA EDYTOWANA
i o to mi chodziło biggrin.gif Dobrze że ktoś to testuje bo moze zawierać wiele błędów tongue.gif Poprawiona funkcja:
  1. <?php
  2. function wolacz ($imie) {
  3. if (substr ($imie, -2, 2) == 'ia' || substr ($imie, -2, 2) == 'ja' || substr ($imie, -2, 2) == 'la')
  4. return $imie = substr ($imie, 0, -1).'u';
  5. elseif (substr ($imie, -1, 1) == 'a')
  6. return $imie = substr ($imie, 0, -1).'o';
  7. elseif (substr ($imie, -2, 2) == 'eł')
  8. return substr ($imie, 0, -2).'le';
  9. elseif (substr ($imie, -2, 2) == 'oł')
  10. return substr ($imie, 0, -2).'ele';
  11. elseif (substr ($imie, -2, 2) == 'eń')
  12. return substr ($imie, 0, -2).'niu';
  13. elseif (substr ($imie, -3, 2) == 'ie' && !(substr ($imie, -3, 1) == 'c' || substr ($imie, -3, 1) == 'h' || substr ($imie, -3, 1) == 'i' || substr ($imie, -3, 1) == 'j' || substr ($imie, -3, 1) == 'l' || substr ($imie, -3, 1) == 'm' || substr ($imie, -3, 1) == 'n' || substr ($imie, -3, 1) == 'o' || substr ($imie, -3, 1) == 'r' || substr ($imie, -3, 1) == 'u' || substr ($imie, -3, 1) == 'y'))
  14. return substr ($imie, 0, -3).substr ($imie, -1, 1).'u';
  15. elseif (substr ($imie, -2, 1) == 'a' || substr ($imie, -2, 1) == 'e' && !(substr ($imie, -3, 1) == 'c' || substr ($imie, -3, 1) == 'h' || substr ($imie, -3, 1) == 'i' || substr ($imie, -3, 1) == 'j' || substr ($imie, -3, 1) == 'l' || substr ($imie, -3, 1) == 'm' || substr ($imie, -3, 1) == 'n' || substr ($imie, -3, 1) == 'o' || substr ($imie, -3, 1) == 'r' || substr ($imie, -3, 1) == 'u' || substr ($imie, -3, 1) == 'y'))
  16. return substr ($imie, 0, -2).substr ($imie, -1,1).'u';
  17. elseif (substr ($imie, -1, 1) == 'r')
  18. return $imie.'ze';
  19. elseif (substr ($imie, -3, 3) == 'ies')
  20. return substr ($imie, 0, -3).'sie';
  21. elseif (substr ($imie, -1, 1) == 'd')
  22. return $imie.'zie';
  23. elseif (substr ($imie, -1, 1) == 'k' || substr ($imie, -1, 1) == 'l' || substr ($imie, -1, 1) == 'g' || substr ($imie, -1, 1) == 'h' || substr ($imie, -1, 1) == 'j' || substr ($imie, -1, 1) == 'l' || substr ($imie, -2, 2) == 'rz' || substr ($imie, -2, 2) =='sz' || substr ($imie, -1, 1) == 'c')
  24. return $imie.'u';
  25. elseif (substr ($imie, -1, 1) == 't')
  26. return substr($imie, 0, -1).'cie';
  27. elseif (substr ($imie, -1, 1) == 'm' || substr ($imie, -1, 1) == 'n' || substr ($imie, -1, 1) == 'b' || substr ($imie, -1, 1) == 'f' || substr ($imie, -1, 1) == 'p' || substr ($imie, -1, 1) == 's' || substr ($imie, -1, 1) == 'z')
  28. return $imie.'ie';
  29. elseif (substr ($imie, -2, 2) == 'ów')
  30. return substr ($imie, 0, -2).'owie';
  31. elseif (substr ($imie, -2, 2) == 'ał')
  32. return substr ($imie, 0, -1).'le';
  33. elseif (substr ($imie, -1, 1) == 'ś')
  34. return substr ($imie, 0, -1).'siu';
  35. else
  36. return $imie;
  37. }
  38. ?>


Testować, testować smile.gif

Ten post edytował Levabul 23.12.2005, 17:48:59


--------------------
Go to the top of the page
+Quote Post
marcman
post 21.12.2005, 11:40:23
Post #18





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.12.2005

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


Cytat(kszychu @ 2005-12-16 22:42:45)
Można poszukać zależności i oprogramować tylko wyjątki. Np, żeńskie kończą sięwszystkie na "a" i zamieniają na "o". Czyli we wszystkich imionach konczących się na a zamieniasz a na o.

Kasia -> Kasiu tongue.gif
Go to the top of the page
+Quote Post
kszychu
post 21.12.2005, 12:31:22
Post #19





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Kolejna reguła dla żeńskich:
końcówka ia (ja), la - 'a' zamieniamy na 'u' (Kasia, Mariola, Maja, Ania ale już nie Anna)
pozostałe - 'a' zamieniamy na 'o' (Anna)

Pierwsza reguła stosuje się raczej do zdrobnień.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Levabul
post 23.12.2005, 17:49:29
Post #20





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


Poprawione smile.gif


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.05.2025 - 10:15