Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
szczabik
Czemu takie wyrażanie zawraca mi w tablicy dwa razy 13 skoro tylko raz występuje ?
  1. <?php
  2. $tekst = 'test test <km>13</km> tetet tet';
  3. $text = preg_match('#<km>(.*?)</km>#si', $tekst, $matches);
  4. print_r($matches);
  5. ?>
gulldarek
$matches[0] zwraca ci znaleziony ciag ( <km>13</km> ), a $matches[1] konkretny fragment ( 13 ). <km> przegladarka potraktowala jako html, dlatego nie widzisz.

Z dokumentacji:

matches

If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

http://pl.php.net/preg_match
szczabik
Dzieki ale jak zrobić zeby dodawało mi do bazy same liczby bo na chwile obecną dodaje mi tak
  1. <?php
  2. $te = '<km>231321</km>';
  3. $te2 = '<km>231</km>';
  4.  
  5. $text = preg_match_all('#<km>(.*?)</km>#si', $te, $matches);
  6. $text1 = preg_match_all('#<km>(.*?)</km>#si', $te2, $matches1);
  7. $wynik = array_merge($matches, $matches1);
  8. print_r($wynik);
  9. $ile = count($wynik);
  10. for($rzad = 0;$rzad < $ile; $rzad++){
  11. for($kolumna = 0;$kolumna < 1; $kolumna++){
  12. $result = mysql_query("INSERT INTO ".DB_KM." (news_id, wartosc) VALUES ('".$r['news_id']."', '".$wynik[$rzad][$kolumna]."')");
  13. }
  14. }
  15. ?>


I w bazie mam tak
<km>231</km>
231321
<km>231321</km>
231

I teraz pytanie jak zrobić by dodawało tylko wartosci bez tagu <km> ? Ma ktoś jakis pomysł ?
Tablica wygloda tak
Array ( [0] => Array ( [0] => 231321 ) [1] => Array ( [0] => 231321 ) [2] => Array ( [0] => 231 ) [3] => Array ( [0] => 231 ) )

?
PawelC
np pętlą foreach:
  1. <?php
  2. foreach($matches1 as $key)
  3. {
  4. // zapytanie
  5. }
  6. ?>
szczabik
No tak ale ja połączyłem dwie tablice w jedną. I jest to tablica dwuwymiarowa
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.