[php] Zamiana podciągów w tekscie ale.. |
[php] Zamiana podciągów w tekscie ale.. |
9.12.2007, 18:47:31
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
Mam takie chyba dość proste pytanko. zamiana ciągów znaków odbywa się przez:
str_replace ('wyraz_do_zmiany', 'wyraz_zmieniony', 'cały_text'), czy możecie mi napisać wyrażenie które zamienia wyrazy zawierający jakiś podciąg na jakiś określony wyraz? czyli np: chciałbym zamienić każdy z wyrazów , który zawiera w sobie podciąg 'oza', na wyraz 'domek'. jakie powinienem wpisać wyrażenie do funkcji str_replace w pierwszej rubryce? |
|
|
9.12.2007, 19:13:33
Post
#2
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
co to są podciągi? :D
|
|
|
9.12.2007, 19:30:34
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) |
Ten post edytował ayeo 9.12.2007, 19:33:03 -------------------- |
|
|
9.12.2007, 20:20:16
Post
#4
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
ok super dzięki !
ALE ! jest jeszcze mały problem. nie chce zeby funkcja uwzględniała wielkości liter. a narazie jest tak, że jak napisze w texcie 'koza nazywa sie ZOZA'. to mi tylko zamienia podciag 'oza' w wyrazie 'koza', natomiast wyraz 'ZOZA' pozostaje niezmieniony. można to jakoś rozwiązać? |
|
|
9.12.2007, 20:24:15
Post
#5
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
|
|
|
9.12.2007, 21:43:00
Post
#6
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
O dżizys.... panowie, skupiłem sie na wilkościach liter.. a przecież w ogóle .. od początku nie tak !
NIE chodzi mi o to, że jeśli mam wyraz 'ZOZOL' to funkcja wynajduje mi podciąg 'OZO' i zamienia ten podciąg na 'domek', tak że w ostateczności jest: 'ZdomekL' chce aby funkcja zamieniała CAŁY wyraz, a nie tylko podciąg w wyrazie, czyli w tym przypadku efekt ostateczny powinien być po prostu 'domek' ! bez początkowej litery 'Z' i końcowej 'L' . poóżcie prosze |
|
|
9.12.2007, 21:53:34
Post
#7
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
hmmm a to jak na moją głowę już większa sztuka
pierwsze co mi przyszło na myśl to każde słowo przypisać do tablicy, sprawdzać czy występuje w nim w/w ciąg znaków jeśli tak zamienić je na "domek" |
|
|
9.12.2007, 21:55:02
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
Chodzi o to:
0ps sorki chyba zle zrozumialem myslalem ze to chcialo Cytat chce aby funkcja zamieniała CAŁY wyraz, a nie tylko podciąg w wyrazie, czyli w tym przypadku efekt ostateczny powinien być po prostu 'domek' ! bez początkowej litery 'Z' i końcowej 'L' . powiedziec ze dany wyraz chce zastapic na inny Ten post edytował marcio 9.12.2007, 22:00:38 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
9.12.2007, 22:10:16
Post
#9
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
nie marcio, to jest dokladnie to samo co poprzedni kod.
jak dasz $ciąg = 'bla blada grobla'; to efekt końcowy będzie 'domek domekda grodomek'; a chce w tym wypadku efekt 'domek domek domek' |
|
|
9.12.2007, 22:17:38
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) |
no i wlasnie taki efekt jest
P.S czekaj znowu zle przeczytalem chodzi ci o to ze obojetnie co bedzie w ciag to kazdy jego wyraz ma zmienic na domek? Ten post edytował marcio 9.12.2007, 22:18:42 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
9.12.2007, 22:18:29
Post
#11
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
EDYTOWANE
zamienione na funkcje i testowane
Ten post edytował b_chmura 9.12.2007, 22:27:22 |
|
|
9.12.2007, 22:32:05
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) |
kod, który Ci podałem w poprzdnim poście działa tak jak chcesz! Jedyne co musisz dodać to :
$text = strtolower($text); -------------------- |
|
|
9.12.2007, 22:42:15
Post
#13
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
no i wlasnie taki efekt jest P.S czekaj znowu zle przeczytalem chodzi ci o to ze obojetnie co bedzie w ciag to kazdy jego wyraz ma zmienic na domek? kod, który Ci podałem w poprzdnim poście działa tak jak chcesz! Jedyne co musisz dodać to : $text = strtolower($text); Zanim zaczniecie odpowiadać przeczytajcie w czym tkwi problem, nie rozumiem waszego działania... ~LubieWino funkcja którą Ci podałem spełnia sie w 100% jednak istnieje może jakieś inne optymalniejsze rozwiązanie, nie wiem, musisz poczekać aż jakiś specjalista sie odezwie |
|
|
9.12.2007, 22:50:18
Post
#14
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
ayeo - główna sprawa jest taka, że ten kod nie działa jak powinien, bo on nie zamienia mi całych wyrazów a jedynie podciąg wyrazów. odnasząc się do twojego przykładu, efekt końcowy zdania które podałeś jest:
'mala kdomek w kropki bordo nazywa się Sdomek z filmu Scareface Lodomekaa Booodomek!!" a ma być: 'mala domek w kropki bordo nazywa się domek z filmu Scareface domek domek!!" chmura.... huh ... zadziałeś teraz... musze chwile to przetestować i napisze co i jak Ten post edytował LubieWino 9.12.2007, 22:47:46 |
|
|
9.12.2007, 22:54:46
Post
#15
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) |
Pierwszy kod właśnie tak działa!! Jeżeli zmieniłeś później $pattern; to już nie moja wina! Sprawdź to proszę!
@b_chmura to chyba Ty podałeś zły $pattern Co do kodu, który podałeś potem to wydaje się być spoko. Pozdrawiam! EDIT Forum usunęło backslashe sprzed "S" w $pattern dlatego może nie działało Ten post edytował ayeo 9.12.2007, 22:56:33 -------------------- |
|
|
9.12.2007, 23:07:17
Post
#16
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
hehe , ok działa:)
podejrzwałem że coś nie tak z tym zapytaniem, ale jeszcze sie z tym nie obeznałem dokładnie. dobrze ze udalo ci sie to znaleźć. tak czy siak dzieki tobie i dzieki wszystkim ! |
|
|
9.12.2007, 23:10:01
Post
#17
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) |
~ayeo zwracam honor, faktycznie po dodaniu backslashy działa jak należy
Pozdrawiam Chmura PS: a to głupie forum :P :D --- Ja Ci dam glupie :P :D /~strife/ |
|
|
9.12.2007, 23:13:40
Post
#18
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 15.10.2006 Ostrzeżenie: (0%) |
ale czy na pewno te backslashe usunęło forum? czy to nieuwaga ayeo?
a może specjalnie to zrobił zebyśmy mieli horror (przynajmniej ja) ;> Ten post edytował LubieWino 9.12.2007, 23:14:28 |
|
|
10.12.2007, 04:07:38
Post
#19
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) |
forum, bo z kodu b_chmura też usunęło chociaż na początku chyba jeszcze były...
-------------------- |
|
|
10.12.2007, 18:28:14
Post
#20
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Najprostsza rzecz a ludzie sie mecza
Sprawdzone i dziala. Dwa razy jest to samo preg_match, bo jak wyrazy sa kolo siebie to zamienia co drugi. |
|
|
Wersja Lo-Fi | Aktualny czas: 21.09.2024 - 12:26 |