Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne
Forum PHP.pl > Forum > PHP
Fluke
Witam. Od dłuższego czasu się męczę nad wyrażeniami.

Mam taki kod:
  1. <tr><td>asd</td><td>dsa</td><td>axxx</td></tr>


oraz wyrażenie:
  1.  
  2. $pattern2 = '/<td[^>]*>(.*)<\/td>/';
  3. preg_match_all($pattern2, $list, $list1);

To zwraca mi wszystko, natomiast jak ten html sformatuje to działa.

Pozdrawiam.
kamil4u
Jaki masz problem? Co działa? Jak ma działać? Co to ma robić? Jak sformatować? Nie czytamy Ci w myślach!

Napisz swojego posta jeszcze raz!

Pozdrawiam
Fluke
Sorry.
Chodzi mi o to że jak mam kod HTML napisany w ciągu, bez spacji i tabulacji to wyrażenie nie działa tak jak powinno. Chciałem, żeby mi zwracało takiego array`a:
  1. [0] => arrray(
  2. [0] = "<td>asd</td>",
  3. [1] = "<td>dsa</td>",
  4. [2] = "<td>axxx</td>"
  5. )
  6. )


A zwraca jedynie:
  1. [0] => array(
  2. [0] = "<tr><td>asd</td><td>dsa</td><td>axxx</td></tr>"
  3. )
  4. )

Natomiast jak sformatuje ten kod do postaci:
  1. <tr>
  2. <td>asd</td>
  3. <td>dsa</td>
  4. <td>axxx</td>
  5. </tr>

To działa tak jak należy.
kamil4u
Mi kod, który podałeś:
  1. <pre>
  2.  
  3. <?php
  4. $test = '<tr><td>asd</td><td>dsa</td><td>axxx</td></tr>';
  5. $pattern = '/<td[^>]*>(.*)<\/td>/';
  6. preg_match_all( $pattern, $test, $list );
  7.  
  8. print_r( $list );
  9. ?>
  10.  
  11. </pre>
zwraca:
Kod
Array
(
    [0] => Array
        (
            [0] => asddsaaxxx
        )

    [1] => Array
        (
            [0] => asddsaaxxx
        )

)


Więc nie wiem czy teraz cokolwiek działa Ci dobrze smile.gif

Niemniej skoro chcesz, żeby działał jak należy to to:
  1. <pre>
  2.  
  3. <?php
  4. $test = '<tr><td>asd</td><td>dsa</td><td>axxx</td></tr>';
  5. $pattern = '/<td[^>]*>(.*)<\/td>/iU';
  6. preg_match_all( $pattern, $test, $list );
  7.  
  8. print_r( $list );
  9. ?>
  10.  
  11. </pre>
daje to:
Kod
Array
(
    [0] => Array
        (
            [0] => asd
            [1] => dsa
            [2] => axxx
        )

    [1] => Array
        (
            [0] => asd
            [1] => dsa
            [2] => axxx
        )

)


Jest bez <td>, ale to chyba już sobie zrobisz smile.gif
Fluke
@kamil4u

Dzięki, działa własnie jak dam .../iU
czyli powinno być:
  1. $pattern = '/<td[^>]*>(.*)<\/td>/iU';
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.