Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyciagnięcie z tekstku istotnych informacji
Forum PHP.pl > Forum > Przedszkole
motor
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
Maxik
Jak najbardziej możliwe, poczytaj o wyrażeniach regularnych.
motor
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
Maxik
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.
motor
zamiast wywalać , jak wyciągnąć istotne waga: 10 ,może ktoś zna na to funkcje ?
webasek
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. ?>
manro
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
motor
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
Kicok
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.