login  Naam:   Wachtwoord: 
Registreer je!
 Forum

URL verkrijgen (Opgelost)

Offline fanne006 - 07/03/2009 19:20
Avatar van fanne006Nieuw lid Hallo iedereen,

ik ben nieuw op dit forum en ben ook een beginneling met PHP.

Ik heb het volgende probleem. Ik wil een php-script maken dat van een url de url ophaalt waar de eerste naar wijst. Ik ga dit proberen wat duidelijker uit te leggen.

Stel dat als je url1 ingeeft in je browser er een "omleiding" plaatsvindt naar url2. url1 "wijst" dan naar url2 (of hoe zeg je dit beter?). Ik zou nu willen dat het php-script automatisch url2 ophaalt en uitprint wanneer url1 gegeven is.

Ik heb al gezocht in mijn PHP-boek en op de online documentatie maar ik vind niets, ook omdat ik niet echt weet bij welk keyword ik moet beginnen zoeken.

Kunnen jullie mij hiermee helpen?

alvast bedankt

Stefan Achten

5 antwoorden

Gesponsorde links
Offline ArcanA - 07/03/2009 19:39 (laatste wijziging 07/03/2009 19:40)
Avatar van ArcanA PHP beginner
  1. <?php
  2. header("Location: http://www.google.com/");
  3. ?>


Bedoel je zoiets?
Offline Rik - 07/03/2009 19:50
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Die omleiding wordt door de eerste server (url1) via http headers aan je browser duidelijk gemaakt die je daarna automatisch doorstuurt naar de tweede server (url2).

Die headers kun je (mbv de curl extensie) opvragen:
http://snipplr.com/view/1180/retrieve-http-header/

Er zijn ook andere manieren, maar dit is de makkelijkste.

Je moet dan in de headers zoeken naar de statuscode die helemaal bovenaan staat. Dat zal in jouw geval 301 (moved permanently) zijn.

Verder is er nog de Location header met de nieuwe url gezet.
Offline fanne006 - 07/03/2009 19:53 (laatste wijziging 07/03/2009 20:15)
Avatar van fanne006 Nieuw lid ik bedoel idd zoiets, dit werkt maar het is nog niet volledig wat ik zoek.
Ik zou namelijk niet moeten doorgestuurd worden naar de site maar gewoon de url ervan opvangen en dit voor meerdere url's achter elkaar.

Is dit mogelijk met php?
Ik heb nu het volgende stukje code:
  1. foreach($tabel as $element)
  2. {
  3. header("Location: " . $url . $element);
  4. }

waarbij $url het vaste deel is van de url en $tabel een array van strings bevat die als php-get variabelen werken en er dus achter geplakt worden.

Bedankt voor de snelle respons.


EDIT:
Dankjewel Boukefalos, nu heb ik verder kunnen zoeken en het ik de functie get_headers van php ontdekt. Hiermee gaat het nog korter. Deze functie bestaat wel pas sinds versie 5.

De code is nu dit:

  1. foreach($tabel as $element)
  2. {
  3. $terug = get_headers($url . $element);
  4. echo $terug[4];
  5. echo "<br>";
  6. }


Nogmaals bedankt allen voor de snelle respons.
Offline Rik - 07/03/2009 20:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Inderdaad, die get_headers() functie bestaat ook nog. 

Ik zou niet $terug[4] gebruiken omdat het aantal headers dat de server stuurt kan variëren, beter is het om dmv de tweede parameter een associatieve array op te vragen en dan $terug['Location'] te gebruiken.
Offline fanne006 - 08/03/2009 12:34
Avatar van fanne006 Nieuw lid ok, dan ga ik het op de tweede manier doen!

nogmaals bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.184s