Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyciaganie zmiennej liczby z tekstu.
Kicha
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 1.05.2010

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


Witam, mam czysty tekst, bez zadnego html. (w text area i bez <br> itd), i chce wyciągnąc liczby po kazdym slowie pertes, (dla attaquant i defenseur i kazdego nowego pertes oddzielnie) i potem te liczby przypasuje pod var. Niestety nie wiem jak złapać te liczby, (za kazdym nowym takim tekstem liczby sa inne i moze byc ich wiecej itp.)

Na dana chwile interesuje mnie sposob jak to tylko zrobic. Nie wiem takze jak oznaczyc liczbe ktora sie zmienia, jako jednej nie zapisze bo nastepnym razem nie zadziala:)

Oto tekst na ktorym pracuje.
Cytat
Round : 1
Attaquant
Serenity SR6 Total : 1 | Pertes : 0 (0%)

Défenseur
Tour. à laser lourd Total : 23 | Pertes : 0 (0%)
BNLMNA Total : 9 | Pertes : 0 (0%)

Round : 2
Attaquant
Serenity SR6 Total : 1 | Pertes : 0 (0%)

Défenseur
Tour. à laser lourd Total : 23 | Pertes : 23 (1%)
BNLMNA Total : 9 | Pertes : 2 (0.22%)

Round : 3
Attaquant
Serenity SR6 Total : 1 | Pertes : 0 (0%)

Défenseur
BNLMNA Total : 7 | Pertes : 7 (1%)
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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



Ja kiedyś też musiałem coś podobnego zrobić, ale wyciąganiu minut z listy strzelców która była poziomo zapisana, więc raz było 0, a raz 6 nazwisk z minutami.
Jednak w PHP, a nie JavaScript. Ale potem odpowiednią daną możesz wysłać do JavaScript.

jeżeli wszędzie jest Pertes to:
  1. foreach ($dane as $linia)
  2. {
  3. $p = explode("Pertes",$linia);
  4. if ($p[1] == TRUE)
  5. {
  6. $e = explode(' ', $p[1]);
  7. echo "<br>Wynik: {$e[0]} {$e[1]} {$e[2]}"; // : 7 (15%)
  8. }
  9. }

teraz tylko usuwasz nie potrzebne znaki z e[2] czyli nawiasy i procent np. funkcją str_replace() i masz wynik (IMG:style_emoticons/default/smile.gif)

Ten post edytował Tomplus 9.04.2011, 17:57:42
Go to the top of the page
+Quote Post
Kicha
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 1.05.2010

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


dzieki, mniej wiecej widze jak robiles, troche pomoze:)
Ale niestety musze miec w pelni java script:)

wartosci juz mam, tylko(chyba az:D) powyciagac i dodac poszczegolne.

Ten post edytował Kicha 9.04.2011, 18:21:11
Go to the top of the page
+Quote Post
wszerad
post
Post #4





Grupa: Zarejestrowani
Postów: 106
Pomógł: 18
Dołączył: 11.12.2008

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


http://doman.art.pl/kursjs/kurs/regular.html
Podpowiem ci, że szukasz w tekście wzorca ": liczba" i pasujące wyniki pobierasz, ale nie jestem mocny w te klocki i nie mam czasu, żeby znaleść dla ciebie odpowiednią metode i wzorzec, ale wiesz już gdzie szukać. Jak nikt ci nie pomoże to jutro postaram się ci pomóc.
Go to the top of the page
+Quote Post
Kicha
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 1.05.2010

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


wczesniej probowalem uzyc indexOf ale to dlugi kod do kazdej nowej jednostki typu: BNLMNA itd.

Chyba musze uzyc czegos takiego:
var Wyrazenie = new RegExp("/\d+/","s")

Ale nigdy tego nie uzywalem, musze poprobowac.

Kod
var tekst = "BNLMNA Total : 5 | Pertes : 4";
var wzor = /\d+/g;
var znalezione = tekst.match(wzor);
alert( znalezione )


juz wiem jak to dziala. ale teraz jak dodac do var tekst dana linijke?

Ten post edytował Kicha 10.04.2011, 07:53:41
Go to the top of the page
+Quote Post

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: 25.08.2025 - 20:57