Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenia regularne?, Nie jestem pewny co do tematu:)
pitrro131
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 31.07.2009

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


Witam, posiadam funkcje w PHP która ma za zadanie pobrać ciąg znaków (pogrubiony) ze strony (oczywiście tego pogrubienia nie bierzemy pod uwagę interesują nas tylko znaki Laaaaa).

Fragment kodu html:
Cytat
<div class="box_top_small">Laaaaaaaa</div>
<div class="box_text_small"><span class="style">Laaaa</span>


Funkcja:

Cytat
<?php

public function pokaz() {
$page3 = preg_match('@aaaa</div><div class="box_text_small"><span class="style">([[A-Za-z]+)</span>@', $page['page'], $page3);


$this->verbose($page3);




}

?>


No i właśnie problem w tym że wyświetla 0 a nie Laaaa:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
z3L
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 22.08.2006

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


Cytat
preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject . preg_match() returns FALSE if an error occurred.


Wyniki, które potrzebujesz zapisywane są w 3 zmiennej w kolejności, czyli powinieneś zrobić coś takiego:

  1. <?php
  2. preg_match('@aaaa</div><div class="box_text_small"><span class="style">([[A-Za-z]+)</span>@', $page['page'], $page3);
  3. var_dump($page3);
  4. ?>


Sprawdź co wyrzuci, jeżeli null, to błąd jest w wyrażeniu regularnym, którego osobiście nie sprawdziłem. Zakładam, że jest poprawne. Jeżeli chcesz wyświetlić więcej wyników, to użyj preg_match_all.

Ten post edytował z3L 31.07.2009, 21:59:08
Go to the top of the page
+Quote Post
pitrro131
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 31.07.2009

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


Cytat(z3L @ 31.07.2009, 22:54:28 ) *
Wyniki, które potrzebujesz zapisywane są w 3 zmiennej w kolejności, czyli powinieneś zrobić coś takiego:

  1. <?php
  2. preg_match('@aaaa</div><div class="box_text_small"><span class="style">([[A-Za-z]+)</span>@', $page['page'], $page3);
  3. var_dump($page3);
  4. ?>


Sprawdź co wyrzuci, jeżeli null, to błąd jest w wyrażeniu regularnym, którego osobiście nie sprawdziłem. Zakładam, że jest poprawne. Jeżeli chcesz wyświetlić więcej wyników, to użyj preg_match_all.


Strasznie mi coś wali cały skrypt z którego są wywoływane funkcje.

Pokazało mi:

Cytat
[31.07.2009 - 23:16] pruski: Aktualne:

int(0) [31.07.2009 - 23:16] pruski: Lista:


A jak już to powinno pokazać:

Cytat
[31.07.2009 - 23:16] pruski: Aktualne:

[31.07.2009 - 23:16] pruski: int(0)

[31.07.2009 - 23:16] pruski: Lista:
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: 14.09.2025 - 14:25