Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]preg_match ignorowanie spacji?
help_mee
post 19.02.2010, 23:45:13
Post #1





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


Witam.
Nie wiedziałem jak to nazwać sad.gif ale może lepiej wytłumaczę.

oto część strony
  1. <div class="smalltxt">Formularz 1 - </div>
  2. <span class="message">Wysłano</span>
  3. <div class="smalltxt">Formularz 2 - </div>
  4. <span class="message">Wysłano - z błędem (054)</span>
  5. <div class="smalltxt">Formularz 3 - </div>
  6. <span class="message">Wysłano</span>


ponieważ bardzo często Formularz 2 klienci wysyłają z błędem - któremu nie można zapobiec gdyż zależy to do klienta - i jest 31 kodów błędu.
chcę (jeżeli wystąpi błąd) aby spisywał kod błędu - lecz nie wyświetla mi się on, prawdopodobnie dlatego że są spacje i tabulatory w kodzie html- czy da się temu zapobiec - aby ignorował - brał $html jako ciąg ciągły winksmiley.jpg
  1. preg_match('/<div class="smalltxt">Formularz 2 - <\/div><span class="message">(.*?)<\/span>/i', $html, $errcode);


Ten post edytował help_mee 19.02.2010, 23:45:47


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
Go to the top of the page
+Quote Post
DiH
post 20.02.2010, 03:34:46
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


  1. preg_match_all('#.+|<div.*"smalltxt">(.*?)</div>.*<span.*"message">(.*?)</span>#', "", $matches);

Sprawdzałem i działa, chociaż za piękne to wyrażenie niestety nie jest. Wyniki w tym akurat przypadku Array[0][1-6]

P.S. A nie można by po prostu przechwycić wyników bezpośrednio z funkcji, która je wyświetla?

Ten post edytował DiH 20.02.2010, 03:38:21
Go to the top of the page
+Quote Post
help_mee
post 21.02.2010, 10:21:44
Post #3





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


Eh...
To jest tylko wycinek kodu HTML - reszta jest również dynamiczna i raz jest to $matches[55] a raz $matches[155]
Bo rózne wielkości przed i po są. (tak w ogóle to on chyba wszystkie divy dzieli na tabilcę snitch.gif)...



tak więc nie da się ominąć tego snitch.gif

questionmark.gif co_jest.gif

Ten post edytował help_mee 20.02.2010, 18:12:51


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
Go to the top of the page
+Quote Post
Fifi209
post 21.02.2010, 10:28:49
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie zawsze trzeba używać wyrażeń regularnych ;p

  1. <?php
  2.  
  3. $string = ' <div class="smalltxt">Formularz 1 - </div>
  4. <span class="message">Wysłano</span>
  5. <div class="smalltxt">Formularz 2 - </div>
  6. <span class="message">Wysłano - z błędem (054)</span>
  7. <div class="smalltxt">Formularz 3 - </div>
  8. <span class="message">Wysłano</span>
  9. ';
  10.  
  11. $pos = strpos($string, 'Formularz 2');
  12. $x = substr($string, $pos, strpos($string, 'Formularz 3')-$pos);
  13.  
  14. $pos = strpos($x, 'message')+9;
  15. $y = substr($x, $pos, strpos($x, '</span>')-$pos);
  16.  
  17. echo $y;
  18.  
  19. ?>


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
help_mee
post 21.02.2010, 10:50:10
Post #5





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


hehe... też tak próbowałem bo inne dane tak pobieram ... ale on durnieje wtedy - nie wiem czy znaki html spacje i tabulatory to też liczy?


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
Go to the top of the page
+Quote Post
Fifi209
post 21.02.2010, 10:53:05
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(help_mee @ 21.02.2010, 10:50:10 ) *
hehe... też tak próbowałem bo inne dane tak pobieram ... ale on durnieje wtedy - nie wiem czy znaki html spacje i tabulatory to też liczy?


"hehe..." tylko, że przykład, który Ci dałem działa. ^^


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
help_mee
post 21.02.2010, 11:01:01
Post #7





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


"hehehe... i he..." Tyleż że ja tam mam jeszcze innego badziejstwa... i może dlatego że wszystko w jednym pliku mam gdzieś coś się nakłada na siebie.

W każdym bądź razie jak mówisz że powinno - to se policze - bo potrzebuje bez html'ka czysty txt smile.gif

Pozdrawiam


--------------------
Amentis dolet!
Deus et patria!
» Pomogłem? Kliknij Pomógł.
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: 18.07.2025 - 17:17