Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyciagnięcie z tekstku istotnych informacji
motor
post 22.07.2008, 15:19:10
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Mam zmienną w takiej postaci


Zakres temperatur: Zakres temperatury +4° ~ +16°C
Oświetlenie wnetrza: Tak
Kolor: Sebrny
Zasilanie: 230
Waga: 5
Moc: 100


Chcę wyciągnąć istotny dla mnie parametr Waga Czy to możliwe ? proszę o podpowiedzi
Go to the top of the page
+Quote Post
Maxik
post 22.07.2008, 15:20:04
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Jak najbardziej możliwe, poczytaj o wyrażeniach regularnych.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
motor
post 22.07.2008, 15:30:01
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Myśłałem o tablicy
  1. <?php
  2. $n = 'Ala ma kota czarnego';
  3. $l = split(' {1,}', $n);
  4.  
  5. spowodują, że wartością zmiennej $l będzie tablica o elementach równych kolejno:
  6.  
  7. $l[0] = 'Ala'
  8. $l[1] = 'ma'
  9. $l[2] = 'kota'
  10. $l[0] = 'czarnego'
  11. ?>



Tylko ze waga występuje na losowej pozycji tablicy
Go to the top of the page
+Quote Post
Maxik
post 22.07.2008, 15:40:34
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Jeśli losowo to jest większy kłopot, możesz kombinować z funkcjami operującymi na stringach typu strpos, strlen, substr, str_replace wywalić nie potrzebne dane.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
motor
post 23.07.2008, 09:11:21
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


zamiast wywalać , jak wyciągnąć istotne waga: 10 ,może ktoś zna na to funkcje ?
Go to the top of the page
+Quote Post
webasek
post 23.07.2008, 11:11:40
Post #6





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Wyrażenia regularne a oto sposób powinien działać:

  1. <?php
  2. $n = "Zakres temperatur: Zakres temperatury +4° ~ +16°C
  3. Oświetlenie wnetrza: Tak
  4. Kolor: Sebrny
  5. Zasilanie: 230
  6. Waga: 5
  7. Moc: 100";
  8.  
  9. preg_match_all('[Waga: [0-9]+]',$n,$tablica);
  10.  
  11. echo $tablica[0][0];
  12. ?>


--------------------
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein

Wirtualny Rynek Predykcyjny
Go to the top of the page
+Quote Post
manro
post 24.07.2008, 00:00:00
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 3
Dołączył: 25.10.2006

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


Cytat(webasek @ 23.07.2008, 12:11:40 ) *
preg_match_all('[Waga: [0-9]+]',$n,$tablica);


powyższe wyrażenie napisał bym w taki sposób:
Kod
...
preg_match_all('/(Waga: ([0-9]+))/i',$n,$tablica);

echo $tablica[1];        // Tutaj mamy całą treść Waga: 5
echo "<br>".$tablica[2]; // Tutaj mamy tylko wartość 5


Ten post edytował manro 24.07.2008, 15:45:13


--------------------
If you don't have time to do it right, where are you going to find the time to do it over?
http://www.nowicki.cjb.net
Go to the top of the page
+Quote Post
motor
post 25.07.2008, 12:15:14
Post #8





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Dzięki panowie wszystko działa smile.gif

preg_match_all('/(Waga: ([0-9]+))/i',$n,$tablica);

dla tego polecenia dlaczego taki wynik ?

Array
Array
Go to the top of the page
+Quote Post
Kicok
post 25.07.2008, 12:35:06
Post #9





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Bo preg_match_all" title="Zobacz w manualu PHP" target="_manual (które w tym przypadku jest zbędne, wystarczy preg_match" title="Zobacz w manualu PHP" target="_manual) zwraca tablicę dwuwymiarową. Jeśli na ekranie wyświetli ci się napis "Array", to znaczy że $zmienna którą próbowałeś wyświetlić okazała się tablicą.

Jak masz z tym dalej problemy to rób tak:
  1. <?php
  2.  
  3. if( preg_match_all('/(Waga: ([0-9]+))/i', $n, $tablica ) )
  4. {
  5. echo '<pre>' . print_r( $tablica, true ) . '</pre>';
  6. }
  7. else
  8. {
  9. echo 'Nic nie dopasowano!';
  10. }
  11.  
  12. ?>
Przynajmniej będziesz widział jaką strukturę ma $tablica


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 19:30