Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Działania matematyczne na tekście, "100asdaf5" * 2 = "200asdaf10""
mcfreak
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.01.2009

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


Cześć. Robię pewien skrypcik i nie mam pojęcia jak pomnożyć zmienną, która zawiera oprócz liczb tekst bez usuwania go, chcę go zachować.

Np.
  1. $string = 'loremIpsum 100test15asdafe 1';
  2. echo $string * 3;


zwróci loremIpsum 300test45asdafe 3.

Jest na to jakaś funkcja? Jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rzymek01
post
Post #2





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


here you are:
Cytat
<?php
echo preg_replace('#([^0-9]*)([0-9]+)([^0-9]*)#e', '\'\\1\'.(\\2*3).\'\\3\'', '2q45we2ttt90s');
Go to the top of the page
+Quote Post
mcfreak
post
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.01.2009

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


Cytat(rzymek01 @ 8.09.2011, 23:11:52 ) *
here you are:


Nie wiem jak u ciebie, ale twój pierwszy kod działa bezproblemowo z liczbami, które są w środku także i działa tak samo jak ten co teraz podałeś :]

  1. function mathText($text, $what = '*1') {
  2. return preg_replace('#([0-9]+)#e', '\\1'.$what, $text);
  3. }
  4. echo mathText('2q45we2ttt90s', '*3').'<br />';
  5. echo preg_replace('#([^0-9]*)([0-9]+)([^0-9]*)#e', '\'\\1\'.(\\2*3).\'\\3\'', '2q45we2ttt90s');


Wychodzi dwa takie same ;d

Tak BTW, w skrypcie na localhoście miałem wpisane 2q45we2ttt90s do testu a chwilę po tym dodałeś post który też zamienia 2q45we2ttt90s (IMG:style_emoticons/default/snitch.gif) Czuję się jakby mnie inwigilowano (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował mcfreak 8.09.2011, 22:18:25
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: 7.10.2025 - 13:45