Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Podmiana liczby, preg_replace
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


  1. /^STRING (\d*)\/12\/2012/

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.
  1. $count = null;
  2. $returnValue = preg_replace('/^STRING (\d*)\/12\/2012/', '8', 'STRING 7/12/2012', -1, $count);

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markonix
post
Post #2





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.
  1. $text = 'STRING 1/1/2012';
  2. function add($matches) {
  3. return $matches[1] . ($matches[2]+1) . $matches[3];
  4. }
  5. echo preg_replace_callback('/(STRING )(\d*)(\/1\/2012)/', 'add_one', $text);

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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 10:18