Öppna och inkludera filer från fjärrplats (cURL)

cURL eller  allow_url_fopen ?

Alternativet allow_url_fopen tillåter programmeraren att öppna och inkludera filer som finns på en annan server än den som det aktuella scriptet körs ifrån med t.ex. funktionen fopen(). Då detta kan innebära en säkerhetsrisk så rekommenderar vi att du använder nedanstående funktion istället.

cURL biblioteket innehåller ett flertal funktioner som lämpar sig bra för att öppna filer som finns på en annan server.

Scriptet nedan öppnar en fil från en fjärrplats.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://exempel.com/filnamn.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_exec($ch);
curl_close($ch);
?>

Du kan även använda följande funktion som ersätter PHP-funktionen file_get_contents():

<?php
$url = "http://www.example.org/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$contents = curl_exec($ch);
if (curl_errno($ch)) {
  echo curl_error($ch);
  echo "n<br />";
  $contents = '';
} else {
  curl_close($ch);
}

if (!is_string($contents) || !strlen($contents)) {
  echo "Failed to get contents.";
  $contents = '';
}

echo $contents;
?>

Mer information om cURL finns på följande adresser:

Observera att PHP och cURL endast finns installerat på våra UNIX-servrar.

Var den här artikeln till hjälp?

Relaterade artiklar