Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match_all - problem
Forum PHP.pl > Forum > Przedszkole
client
Witam!

Mam kawałek tekstu i chciałbym z niego pobrać 2 kawałki. Przykładowo: '2 - Kokos, Gamend, ogrty, zaser, orges'. Chcąc uzyskać liczbę na początku i nazwy znajdujące się po myślniku napisałem takie coś:

CODE
preg_match_all('#([0-9]{1,2})\s-\s(?:,\s)?(?:.+)?(?:([a-zA-Z\.\-0-9]{4,24})(?:,\s)?)#','2 - Kokos, Gamend, ogrty, zaser, orges', $wynik);


ale dostaje w wyniku ostatnią nazwę pasującą do wzorca, a to nie było moim celem, chciałem uzyskać wszystkie nazwy pasujące do tej liczby. Moje pytanie brzmi: Dlaczego tak się dzieje, dlaczego dostaje tylko jedną wartość pasującą do wzorca choć jest ich kilka i jak uzyskać mój cel?

Dodam tylko jeszcze że ilość tych nazw i wartość liczby na początku nie są  zawsze takie same jak w przykładzie.

Pozdrawiam.
drPayton
  1. <?php
  2. $text = '2 - Kokos, Gamend, ogrty, zaser, orges';
  3.  
  4. preg_match_all('/(d+)*(w+)/is', $text, $wynik, PREG_PATTERN_ORDER);
  5.  
  6. echo '<br><pre>';
  7. print_r($wynik);
  8. echo '</pre><br>';
  9. ?>


Efekt:
Kod
Array
(
    [0] => Array
        (
            [0] => 2
            [1] => Kokos
            [2] => Gamend
            [3] => ogrty
            [4] => zaser
            [5] => orges
        )

    [1] => Array
        (
            [0] =>
            [1] =>
            [2] =>
            [3] =>
            [4] =>
            [5] =>
        )

    [2] => Array
        (
            [0] => 2
            [1] => Kokos
            [2] => Gamend
            [3] => ogrty
            [4] => zaser
            [5] => orges
        )

)
client
Oto mi chodziło. Serdeczne dzięki smile.gif
-przemek_el-
A potrafiłby mi ktoś pomóc? W ogóle nie znam się na wyrażeniach regularnych.

z kodu"
  1. <!-- Nazwa Produktu //--> <div id="nazwa_produktu">Jakaś tam nazwa</div>
  2.  
  3. <tr style='background-color: #FFFFFF;'><td class="bok">
  4. Jakieś tam wartości
  5. </td> </tr> </table>


Potrzebuje jako tablicę wyciągnąć :
  • Jakaś tam nazwa
  • Jakieś tam wartości

Pozdrawiam
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.