![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
array ( 0 => 'STRING 7/12/2012', 1 => '7', ) Wyciągnięcie liczby nie sprawia mi problemu ale potem chciałbym stworzyć nowy string z liczbą +1. Pomijając czy w preg_replace można zrobić małe dodawanie to po prostu chciałbym daną liczbę (całkowitą) podmienić na nową. Liczyłem, że wystarczy ten sam regexp bo jest generowany dynamicznie ale niestety tak prosto nie jest.
Niestety to mi podmienia cały string na "8" co oczywiście mnie nie dziwi ale jak podmienić tylko tamtą liczbę? Wyrażenia regularne to nie jest jakaś moja mocna strona.. Ten post edytował markonix 24.09.2012, 22:52:12 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Powinieneś zastosować preg_replace_callback, drugi przykład
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Kwestia tego dodania +1 jest dla mnie drugorzędna i budowanie tego w funkcje średnio mi to wygląda.
No ale choćby dla treningu coś tam stworzyłem.
Działa tylko czy to jedyny sposób, głównie chodzi o dynamiczne tworzenie regexp'a, tutaj muszę po prostu podzielić string na to co jest przed szukanym elementem i po nim - może da się odwrotnie? Ten post edytował markonix 24.09.2012, 22:09:46 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wyciągnięcie liczby nie sprawia mi problemu ale potem chciałbym stworzyć nowy string z liczbą +1. Może ja jestem głupi, ale... string wygląda mi na DATĘ (nie wiem, czy format d/m/y, czy anglosaski m/d/y). Co będzie, jak gdzieś dostaniesz w dacie ostatni dzień miesiąca albo ostatni miesiąc roku? Naprawdę będziesz się posługiwał gdzieś w kodzie 32gim dniem miesiąca lub 13tym miesiącem w roku? Do operacji na datach są odpowiednie funkcje: http://php.net/manual/en/ref.datetime.php No chyba że w jakiś sposób zapewnisz sobie, że nie nie dostaniesz nigdy do obrobienia daty na przykład 31 grudnia (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Nie, to nie data (IMG:style_emoticons/default/wink.gif) To numery faktury i po prostu chce zrobić kolejny numer faktury na podstawie formatu serii.
Z formatu tworzę regxp'a, który fajnie mi wyłapuje numer faktury gdziekolwiek on się znajdzie i bez względu czy w formacie jest miesiąc i rok, teraz go tylko zwiększyć o jeden i będę mógł iść spać (IMG:style_emoticons/default/wink.gif) Ten post edytował markonix 24.09.2012, 22:35:48 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Co do tego czy wyrażenie regularne jest odpowiednie w tym wypadku, to pewnie nie, można się pobawić w obliczanie pozycji i wyciąganie odpowiednich ciągów z napisu albo też zastosować sscanf, chyba będzie najprościej:
To idź spać, dobranoc (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
sscanf niezbyt - jak ktoś sobie wymyśli format "FVAT [miesiac]/[numer] to szybko się to rozleci, a preg_ się nie wysypie bo jego format jest mocno sztywny i konkretny, że to tak określę.. Generuje go dynamicznie na podstawie wzorca użytkownika i zmieniam miesiąc, rok na aktualne.
Kurdę.. mój problem nie wydaję się tak trudny - po prostu chcę podmienić szukany fragment stringa.. gdy analogiczne wyciąganie stringa preg_matchem działa bezproblemowo. Wyciągnięcie -> edycja = cały mój problem. Ten post edytował markonix 24.09.2012, 22:50:09 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Najprostszy przykład jaki dało rade zrobić. Proszę serdecznie (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, mniej więcej też z preg_replace sobie poradziłem ale ostatecznie podszedłem do tego z drugiej strony - zamiast podmieniać numer w starym numerze faktury utworzyłem nowy string na podstawie wzorca. Szkoda, że na taką oczywistość wpadłem po kilku godzinach...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 16:17 |