Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]preg_match ignorowanie spacji?
help_mee
post
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ć (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
DiH
post
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
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ę (IMG:style_emoticons/default/snitch.gif) )...



tak więc nie da się ominąć tego (IMG:style_emoticons/default/snitch.gif)

(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/co_jest.gif)

Ten post edytował help_mee 20.02.2010, 18:12:51
Go to the top of the page
+Quote Post
Fifi209
post
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. ?>
Go to the top of the page
+Quote Post
help_mee
post
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?
Go to the top of the page
+Quote Post
Fifi209
post
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. ^^
Go to the top of the page
+Quote Post
help_mee
post
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 (IMG:style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 13.10.2025 - 22:52