Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Preg_match i dwie takie same klasy
Forum PHP.pl > Forum > Przedszkole
fnt
Witam to mój pierwszy post, przyznam ze staralem sie tego uniknac ale no nie jestem w stanie tego ogarnac sam.
Zaczne od tego ze jest dosyc lewawy z angielskiego sad.gif

w kazdym badz razie, potrzebuje pobrac pewne dane z innej strony i wyswietlic je u siebie na stronie z tym nie ma wiekszego problemu, jednakze na stronie z ktorej probuje je pobrac div ma taka sama klase dla kilku roznych informacji
rozumiem ze musze zdefiniowac je wszystkie i z echa odwolac sie do tej ktorej potrzebuje jak to zrobic?



________________
jestem idiota dobra rozwiazalem problem, dla przyszlych osob z tym problemem.
nalezy w takiej sytuacji zamiast preg_match uzyc preg_match_all :DDDD

pomyslec ze otwierajac drzwi zeby wyjsc do pracy mi to przyszlo do glowy biggrin.gif

_________________
no i jednak nie do konca , wyswietlenie wyników z pregmatch pokazuje mi diva ktorego powininem uzyc ale jak sie do niego odwoluje [1] dostaje zamiast informacji array sad.gif

Array ( [0] => Array ( [0] =>
cos
[1] =>
dis
[2] =>
cos
) [1] => Array ( [0] => cos [1] => dis [2] => cos ) )
!*!
Poczytaj o tablicach.
  1. echo $foo[1][1];
fnt
Mam jeszcze pytanie preg_match pobiera informacje stale za kazdym razem ? czy tylko jak jest wyswietla strona na ktorej aktualnie sie znajduje?

Zeby dokladniej sie wyrazic chcialbym schowac go w rozwijanym menu tak zeby informacje ktore pobieram, pobieraly sie dopiero po rozwiniecu tego menu
!*!
PHP działa po stronie serwera, nie ma opcji rozwijania czegokolwiek. Rozwijane menu robisz po stronie użytkownika w JS/AJAX.
fnt
Hm, a czemu nie mozna odwołać sie do niektorych divów czemu jak probuje wyswietla mi jako puste tablice skoro ja wiem ze jest tam jakas dana?
motyl-pl
Sprawdź funkcją:
"print_r($zmienna_tablicy);"
badź
"var_dump($zmienna_tablicy)"

Wtedy się okażę czy jest tam jakaś "dana" bo jesteżeli tam nic nie będzie, to tej "danej" nie ma tam ..
fnt
nie rozumiesz, mam tam jakiegos diva ktory ma przypisana klase np. klasa no wiec z pomoca
CODE

preg_match_all('[<div class="klasa">(.*)<\/div>]', $mojadrugastrona, $wyswietl);
print_r($wyswietl);


daje mi w tablicach arraye zamiast rzeczy ktora mam w danym divie dlaczego? dodam ze dodanie patternow nic nie wnosi caly czas jest tak samo (.*) ---> zreszta chyba odpowiada za wszelkie znaki no bo * to od 0 w gore i . wszystkie znaki





nie rozumiesz, mam tam jakiegos diva ktory ma przypisana klase np. klasa no wiec z pomoca
CODE

preg_match_all('[<div class="klasa">(.*)<\/div>]', $mojadrugastrona, $wyswietl);
print_r($wyswietl);


daje mi w tablicach arraye zamiast rzeczy ktora mam w danym divie dlaczego? dodam ze dodanie patternow nic nie wnosi caly czas jest tak samo (.*) ---> zreszta chyba odpowiada za wszelkie znaki no bo * to od 0 w gore i . wszystkie znaki





jesli gdzies w kodzie jest literowka u mnie napewno jej nie ma przeanalizowalem wszystko wielokrotnie wiec jesli tutaj jest to przepraszam.
b4rt3kk
Tak jak mówisz, pattern (.*) to owszem wszystkie znaki, ale do tego nie wliczają się chociażby spacje, tabulatory, znaki nowej linii. A zgodnie z definicją funkcji preg_match_all, w argumencie trzecim, czyli $matches jako wynik otrzymujesz tablicę. I nie przeskoczysz tego w żaden sposób.
fnt
aha , w takim razie jezeli w danym divie jest obrazek, to automatycznie ten obrazek nie zostanie pobrany bo moge odniesc sie tylko do liczb cyfr i znaków ?

jak w takim razie moglbym pobierac obrazek z $mojadrugastrona jezeli jest on aktualizowany i zmieniany musialbym caly czas sledzic czy sie nie zmienil i wpisywac jego nowy adres ? całość wtedy traci zupelnie sens sad.gif
b4rt3kk
Zastosuj odpowiednie wyrażenie regularne, wtedy nie będzie problemu.
fnt
Dzieki wielkie b4rt3kk, skloniłes mnie do do lekturki o wyrażeniach temat do zamkniecia smile.gif
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.