Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z pobraniem danych
Forum PHP.pl > Forum > Przedszkole
majestiq
Mam skrypt zliczający linki na danej stronie:

  1. $data = file_get_contents($url) or die("blad");
  2. preg_match_all('/<div class="title"><a href=\"(.*).abc.pl\/gfx\/(.*)\/(.*)\">(.*)<\/a><\/div>/', $data, $result);
  3. var_dump($result);



Var_dump zwraca mi tylko:
array(5) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(0) { } }

O czym to może świadczyć skoro $data na pewno zawiera odpowiednie dane ?
Wyrażenie też powinno być ok.
nospor
Cytat
O czym to może świadczyć skoro $data na pewno zawiera odpowiednie dane ?
O tym, ze to zdanie:
Cytat
Wyrażenie też powinno być ok.
raczej nie jest prawdziwe winksmiley.jpg
majestiq

:]

To w takim razie jak powinno wyglądać reg exp dla takiego adresu:

http://jakas.domena.pl/tmp/avxp7S/bla_-bla_ble_e

Wydawało mi się że coś takiego:

  1. preg_match_all('/<div class="title"><a href=\"(.*).domena.pl\/tmp\/(.*)\/(.*)\">(.*)<\/a><\/div>/', $data, $result);


questionmark.gif
nospor
w linku co podales nie widze DIV ktorego masz w wyrazeniu... moze podaj konkretne dane a nie jakies wycinki
majestiq
Bo trochę skróciłem.

W $result znajdują się dane tego typu:

  1. <div class="title"><a href="http://1.domena.pl/tmp/2f6gB/aaa">Link 1</a></div>
  2. <div class="title"><a href="http://2.domena.pl/tmp/4f6gB/bbb">Link 2</a></div>
  3. <div class="title"><a href="http://3.domena.pl/tmp/df6gB/ccc">Link 3</a></div>


Potem robię:

  1. preg_match_all('/<div class="title"><a href=\"(.*).domena.pl\/tmp\/(.*)\/(.*)\">(.*)<\/a><\/div>/', $data, $result);


No i niestety nie działa :/

(array(5) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(0) { } } )
erix
  1. brakuje Ci flag
  2. preg_quote i zobacz, które znaki trzeba jeszcze escape'ować
majestiq
Teraz zauważyłem, że ten skrypt działa mi na home.pl i nazwa.pl
ale na serwerze dedykowanym na beyond.pl to już nie przechodzi?

Czyżby jakieś zmiany w php.ini trzeba by wprowadzić ?

BTW. Co do flag to dodałem /i ale nic to nie zmieniło
Co do preg_quote to jakoś mało jest o tym informacji w rodzimym języku a po angielsku wychodzi na to że wszystkiego nie czaje
i nie dokońca rozumiem po co tego używać skoro wyrażenie jest prawidłowe.

No ale skoro na jednym serwerze to idzie a na drugim nie to chyba jednak php.ini, tylko co tam zmienić ?
nospor
a sprawdziles czy oby na pewno pobral ci tresc tego po czym szukasz? Tresc pobierasz z zewnetrznej strony i nie kazde ustawienie na to pozwala
majestiq
Tak, w $data = file_get_contents($url) ... jest to co powinno, problem jest dopiero gdy to przetwarzam za pomocą wyrażenia ...

Ale dlaczego ten sam kod chodzi praktycznie na każdym hostingu wirtualnym a na dedykowanym nie ?
Co może być nie tak?
Może mieć coś do rzeczy zmiana systemu z Debiana na Ubuntu ?
erix
A porównaj wersje PHP, czy taka sama konfiguracja, te same wersje bibliotek zależnych, ten sam sposób instalacji (paczki/kompilowane).
majestiq
Ale która konkretnie biblioteka lub jakiś składnik konfiguracji może ewentualnie
odpowiadać za inną interpretację wyrażeń regularnych ?
erix
libpcre
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.