Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenia regularne
Fluke
post 18.06.2012, 18:46:34
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kamil4u
post 18.06.2012, 18:59:37
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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

Ten post edytował kamil4u 18.06.2012, 19:00:08


--------------------
Go to the top of the page
+Quote Post
Fluke
post 18.06.2012, 19:42:55
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kamil4u
post 18.06.2012, 20:54:32
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Fluke
post 18.06.2012, 21:56:16
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@kamil4u

Dzięki, działa własnie jak dam .../iU
czyli powinno być:
  1. $pattern = '/<td[^>]*>(.*)<\/td>/iU';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:58