![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 22.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Mam kolejny problem
![]() Normalnie: $str='Ala "baba dada"' efekt aktualny: Ala baba dada Chciałbym by działało tak: Ala baba dada Ten post edytował JPCannon 31.05.2013, 07:56:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
pisane z palca, ale mniej więcej tak to powinno być. Ten post edytował !*! 31.05.2013, 08:25:29 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 22.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Niestety jak zwykle mam problem z angielskim tłumaczeniem działania funkcji. Zmienna $mathes powinna być jakoś zadeklarowana albo zamieniona na jakąś wartość?
Niestety nie działa jeśli dam w ten sposób: <?php $str='Ala "baba dada"'; $tablica= str_split($str); $n=strlen($str); for($i=0;$i<$n;$i++){ preg_match('/([A-Za-z]+)\s\"([a-z\s]+)\"/', $str, $match); echo $tablica[$i]; if($tablica[$i]==" "){ echo ("</br>"); } } ?> Nadal rozdziela normalnie po spacjach. Jakieś rady? Ten post edytował JPCannon 31.05.2013, 09:36:44 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Gdzie tutaj masz zmienna $mathes
![]()
Pierwszy i drugi element tablicy $match to Twoje wyciągnięte elementy ![]() Lub mnie poprawnie ale efekt uzyskasz (nie umiem wyrażeń regularnych ;/ )
Ten post edytował Arcioch 31.05.2013, 09:45:53 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 22.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pomyliłem się w nazwie
![]() PS. Z tego co wyczytałem z kodu powyżej to zamieniłeś " na znak pusty i kazałeś podzielić zdanie po odstępach pomiędzy słowami. Tak więc jak pisałem nie jest to ani trochę to o co mi chodziło ![]() Ten post edytował JPCannon 31.05.2013, 10:43:09 |
|
|
-Gość- |
![]()
Post
#6
|
Goście ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 22.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Teraz działa poprawnie. Pozostał mi jeszcze jeden problem użycia tego kodu. Program który robię analizuje stringa znak po znaku i tak musi zostać. Robię to z użyciem zwykłego str_split. Jest jakiś sposób, żeby od wystąpienia " przerywał rozdzielanie na pojedyncze znaki, albo potraktował wszystko pomiędzy " " jako jeden element takiej tablicy? W Przypadku przerwania przy cudzysłowiu, chciałbym wznowić proces rozkładania ponownie potem. Możecie coś podpowiedzieć?
Zastanawiam się nad takim rozwiązaniem, ale nie wiem jak przetłumaczyć to na kod: -Jeżeli trafisz w zdaniu na " to: polecenia -Jeżeli trafisz w zdaniu na " drugi raz to: polecenia Z tym, że sekwencja ta musiała by się resetować po wystąpieniu drugi raz tego znaku. Same polecenia wewnątrz to już nie problem, ale nie wiem jak kazać mu zrobić co innego gdy trafi na dany znak drugi raz, a do tego tak by potem odliczał od nowa. Rozwiązałem już problem ![]() ![]() if(tablica[i]=="\"" && cudz==false){ cudz=true; } else if(tablica[i]=="\"" && cudz==true){ cudz=false; } Dziękuję wszystkim za pomoc ![]() Ten post edytował JPCannon 31.05.2013, 15:20:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 12:28 |