Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pobieranie danych za pomocą preg_match a przekierowanie 301
takijeden
post 29.05.2012, 13:07:52
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 29.05.2012

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


Witam, mam mały problem.

piszę właśnie automat do pobierania danych z pewnej strony.

robię to tak:

ze strony
www.strona.pl/1/podkarpacie/firmatransportowa

pobieram za pomocą preg_math pewien ciąg i sobie go zapisuję.

Ważne jesst to, że liczba 1 to id strony.

przechodząc do meritum:
gdy w adresie URL w przeglądarce zmienię /1/ na /2/ na inny to pojawia się inna strona. Wszystko byłoby fajnie, tyle że oprócz strony zmienia się link na

www.strona.pl/2/malopolska/firmahandlowa

co za tym idzie puszczenie preg_match na www.strona.pl/2/podkarpacie/firmatransportowa nie pomoże.

żeby zobrazować wejdźcie proszę pod adres: http://www.gastronauci.pl/12112-bar-lam-hong-krakow
zmiencie 12112 na 12111 i sprawdźcie jak się zachowuje końcówka url.

czy macie jakiś pomysł jak obejść ten problem? Tak aby np skrypt sam "poprawiał sobie url na własciwy i dopiero z niego pobierał dane?

pozdrawiam
Go to the top of the page
+Quote Post
johny_s
post 29.05.2012, 13:42:43
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


jak to pobierasz curlem to jest taka flaga jak follow url czy cos takiego, z follow na poczatku, daj sobie to na true
Go to the top of the page
+Quote Post
takijeden
post 29.05.2012, 13:46:40
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 29.05.2012

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


tak:

$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;

gdzie dać to follow na true?
Go to the top of the page
+Quote Post
IProSoft
post 29.05.2012, 14:10:16
Post #4





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


  1. $ch = curl_init();
  2. $timeout = 5;
  3. curl_setopt($ch,CURLOPT_URL,$url);
  4. curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
  5. curl_setopt($ch,CURLOPT_MAXREDIRS, 3);
  6. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  7. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  8. $data = curl_exec($ch);
  9. curl_close($ch);
  10. return $data;


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
takijeden
post 29.05.2012, 15:11:59
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 29.05.2012

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


działa, dzięki.
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: 26.06.2025 - 10:33