Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Wyrażenia regularne] Wyciąga tylko jedno pole, a nie więcej
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, mam problem z wyrażeniami regularnymi a mianowicie mam dane:

Kod
><input type="password" name="sudo_password"/>    <input type="password" name="sudo_confirm"/>    <input type="text" name="asd"/>


Kod PHP do wyciągania danych:
  1. preg_match_all( "/<input.*type=\"(text|button|checkbox|radio|password)\".*name=\"(.*)\".*>/" , $Value[3] , $Inputs[ $Key ] , PREG_SET_ORDER );


Wynik:
Kod
Array
(
    [0] => Array
        (
            [0] => <input type="password" name="sudo_password"/>    <input type="password" name="sudo_confirm"/>    <input type="text" name="asd"/>
            [1] => text
            [2] => asd
        )

)


Ale ja oczekuję innego wyniku, a mianowicie:
Kod
Array
(
    [0] => Array
        (
            [0] => <input type="password" name="sudo_password"/>
            [1] => text
            [2] => asd
        )

     [1] => Array
        (
            [0] => <input type="password" name="sudo_confirm"/>
            [1] => password
            [2] => sudo_confirm
        )

      [2] => Array
        (
            [0] => <input type="text" name="asd"/>
            [1] => password
            [2] => asd
        )
)


Proszę o pomoc, nie mogę znaleźć błędu w wyrażeniu.

-- WebNuLL
m44
Witaj,
No na przykład takie coś:
  1. $string = '><input type="password" name="sudo_password"/> <input type="password" name="sudo_confirm"/> <input type="text" name="asd"/>';
  2. preg_match_all( "#<input\s+type=\"(.*?)\"\s+name=\"(.*?)\"/>#" , $string , $match, PREG_SET_ORDER);
  3. echo '<pre>';
  4. print_r($match);
  5. echo '<pre>';


Albo bez użycia kwantyfikatorów leniwych
  1. preg_match_all( "#<input\s+type=\"([^\"]*)\"\s+name=\"([^\"]*)\"/>#" , $string , $match, PREG_SET_ORDER);
Babcia@Stefa
Dziękuję, odpowiedź bardzo pomocna.

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