---
title: "Felkontroll av sökvägar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/45744-felkontroll-av-sökvägar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Niklasson"
published: "2002-06-12T22:28:22.000Z"
updated: "2002-06-14T18:24:30.000Z"
replies: 6
views: 261
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/45744-felkontroll-av-sökvägar"
---

# Felkontroll av sökvägar

## #1 — Niklasson, 2002-06-12T22:28Z

Har ett downloadscript med felkontroll, men undrar lite om det är den smartaste lösningen.
Jag vill kunna kolla externa URL:s utan att påverka bandbredden för webbhotellet, eftersom jag har många downloads per dag. Naturligtvis så snabbt och säkert som möjligt.

Förut använde jag helt enkelt en fopen, men dels är det segt och inte alltid det fungerar. Tog hjälp av stevenet via ICQ och vi körde så här:

```php
<?php
if (@fopen($link, "r"))
{
$filnamn = eregi_replace(".*/(.*)\.([a-zA-Z]{1,4})","\\1.\\2",$link);
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filnamn);
readfile($link);
}
else
{
fel ("Länken är felaktig!");
}
?>
```

Detta tog tydligen mycket bandbredd, och vi ändrade till detta:

```php
<?php

$fp = @implode ('', file ($link)); 
if (strlen($fp)>5)
{
$filnamn = eregi_replace(".*/(.*)\.([a-zA-Z]{1,4})","\\1.\\2",$link);
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filnamn);
echo $fp;
}
else
{
fel ("Länken är felaktig!");
}
?>
```

 

Detta drog tydligen också en del bb, så nu kör jag:

```php
<?php
$fp = @implode ('', file ($link)); 
if (strlen($fp)>5)
{
header ("Location: $link");
exit;
}
else
{
fel ("Länken är felaktig!");
}
```

Du som orkat läsa ända hit ner får gärna komma med en bättre lösning  ;)  :P

Permalänk: https://www.webforum.nu/p/45744

## #2 — stevenet, 2002-06-13T07:49Z

Byt ut:
$fp = @implode ('', file ($link)); 
if (strlen($fp)\>5)

mot

if (@fopen($link, "r"))

Förresten, hjälpte jag dig med nr 2? Den ser lite knasig ut, en header() efter echo.

Permalänk: https://www.webforum.nu/p/696856

## #3 — Niklasson, 2002-06-14T06:34Z

hmm, nej den raden skall inte vara med..  Hade kommenterat bort massa olika rader så jag har nog klippt lite fel där  ;)
(redigerade bort det nu)

fopen tar mig tillbaka till början ;)  gillade aldrig det - men det kanske är den bästa lösningen? Det äter ju också lite bandbredd...

Permalänk: https://www.webforum.nu/p/697387

## #4 — stevenet, 2002-06-14T09:49Z

I den första kör du 2 anslutningar.  I den tredje bara en, borde ju fungera bättre.

Permalänk: https://www.webforum.nu/p/697482

## #5 — Niklasson, 2002-06-14T10:27Z

Okej, men det borde finnas ett sätt att kontrollera om filen existerar utan att behöva läsa in hela filen..  :(

Permalänk: https://www.webforum.nu/p/697510

## #6 — Matte, 2002-06-14T11:27Z

> **Niklasson skrev:**
>
> Okej, men det borde finnas ett sätt att kontrollera om filen existerar utan att behöva läsa in hela filen..  :(

<http://www.php.net/manual/en/function.file-exists.php>

Permalänk: https://www.webforum.nu/p/697566

## #7 — Niklasson, 2002-06-14T18:24Z

Externa URL:s var det...  ;)

Permalänk: https://www.webforum.nu/p/697766

---

Tråden på webben: https://www.webforum.nu/amne/php/45744-felkontroll-av-sökvägar
