Hallo!

Ik wou graag hulp bij mijn probleem. Hieronder staat het probleem uitgelegd:

Ik heb een URL, bijvoorbeeld: https://www.domein.nl/avatar/Rob, deze URL wordt doorgelinkt naar https://www.domein2.nl/avatarimage?figure=cc-3269-110-1220.lg-270-62.sh-295-62.hd-180-1.ch-215-62.hr-3531-1394-31name=Rob
Hoe kan ik er voor zorgen dat ik met PHP de 2e URL kan krijgen? Als ik alleen maar de 1e heb. Want als het bijvoorbeeld
https://www.domein.nl/avatar/Jurre dan word het bij https://www.domein2.nl weer /avatarimage?figure=cc-3245-532-6232.sx-220-42.sh-255-22.hd-180-1.ch-215-62.hr-3531-5328-31name=Jurre
Dit is dus anders bij elke gebruiker, name=NAAM maakt dus eigenlijk niks uit. Enig idee hoe ik dit moet doen?

Alvast bedankt!

[size=xsmall]Toevoeging op 04/03/2017 13:24:59:[/size]

TOEVOEGING:
Ik heb dit nodig omdat ik bij domein.nl alleen 1 ding kan toevoegen &direction=3 en bij domein2.nl kan ik meerdere, &direction=3&head=sml
Wanneer het om een location header gaat zou je met cURL iets als volgt kunnen doen (uiteraard niet getest):

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);

$response = curl_exec($ch);
curl_close($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);

$headers = explode("\r\n", $headers);
$new_url = null;
foreach ($headers as $header) {
  $header = explode(':', $header);
  if (strtolower($header[0]) == 'location') {
    $new_url = trim($header[1]);
    break;
  }
}

// Werk hier verder met $new_url
?>
- Ariën - op 04/03/2017 19:49:29

Op welke manier wordt https://www.domein.nl/avatar/Rob doorgelink naar de lange URL van domein2?


Ik denk 403, ik ben niet de eigenaar van domein.nl..

[size=xsmall]Toevoeging op 05/03/2017 13:05:06:[/size]

Ben van Velzen op 05/03/2017 02:34:55

Wanneer het om een location header gaat zou je met cURL iets als volgt kunnen doen (uiteraard niet getest):

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, $url);

$response = curl_exec($ch);
curl_close($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);

$headers = explode("\r\n", $headers);
$new_url = null;
foreach ($headers as $header) {
  $header = explode(':', $header);
  if (strtolower($header[0]) == 'location') {
    $new_url = trim($header[1]);
    break;
  }
}

// Werk hier verder met $new_url
?>



Moet ik bij location de URL zetten?

[size=xsmall]Toevoeging op 05/03/2017 13:11:47:[/size]

Ik heb het al gevonden ;-)

$url = "https://www.domein.nl/avatar/Rob";;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Must be set to true so that PHP follows any "Location:" header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$a = curl_exec($ch); // $a will contain all headers

$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // This is what you need, it will return you the last effective URL

Reageren