---
title: "kolla url"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/157935-kolla-url"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Pedda"
published: "2007-03-07T12:41:55.000Z"
updated: "2010-07-12T08:23:04.000Z"
replies: 12
views: 798
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/157935-kolla-url"
---

# kolla url

## #1 — Pedda, 2007-03-07T12:41Z

Jag använder följande funktion för att kolla om en sträng är en url. Och den funkar bra men jag vill att den ska returnera true även om http:// inte finns i början.
Någon som vet hur jag ska modifiera min regex?

```php
function checkurl($url) {
	if (preg_match('/^(https?):\/\/((?:[-a-z0-9]+\.)*)([-a-z0-9]+)\.(com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z]{2})(\/[-a-z0-9_:@&?=+,.!\/~*%$]*)?$/i', $url)){ 
		return true; 
	}else{
		return false; 
	}
}
```

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

## #2 — voigtann1, 2007-03-07T12:50Z

```
'/^((https?):\/\/)?((?:[-a-z0-9]+\.)*)([-a-z0-9]+)\.(com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|a  ero|[a-z]{2})(\/[-a-z0-9_:@&?=+,.!\/~*%$]*)?$/i'
```

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

## #3 — Pedda, 2007-03-07T12:56Z

den koden kommer väl även returnera true på

nånting.nåntingannat.se

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

## #4 — voigtann1, 2007-03-07T13:00Z

ja hur vill du annars göra? Du kan ju omöjligt kontrollera att länken är korrekt innan den retunera true ;) så länge folk skriver in ett godkänt utryck i din regExp kommer den retunera true. Den validera ju även nu <http://nånting.nåntingannat.se> vilket är detsamma som du nu önskar att man inte behöver ha http://

Vill du så kan du använda
^ och $ om du bara ska ha en "input" där man ska fylla i en URL...

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

## #5 — nitro2k01, 2007-03-19T20:18Z

Flyttat från Regular Expressions på grund av att provtiden för forumet har gått ut

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

## #6 — MickeA.com, 2010-07-12T05:49Z

Har sprungit på den här funktionen för att validera en URL:

```php
/**
* Validate URL
* Allows for port, path and query string validations
* @param    string      $url	   string containing url user input
* @return   boolean     Returns TRUE/FALSE
*/
function validateURL($url){
	$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&amp;?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/';
	return preg_match($pattern, $url);
}
```

Det här nu visat sig att den inte godkänner en url som t.ex. ser ut såhär:

```
http://www.minsajt.com/foo/app/cm/Browse.jsp?PAGE=1284
```

Tar man bort *?PAGE=1284* så fungerar det dock. Hur justerar jag funktionen ovan för att få det här att funka? Eller finns det bättre sätt att kontrollera URL'er?

Tack!

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

## #7 — voigtann1, 2010-07-12T06:02Z

regexpbuddy library: 

```
\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]
```

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

## #8 — MickeA.com, 2010-07-12T06:08Z

Jag får inte till det, får *Delimiter must not be alphanumeric or backslash* hur jag än gör. Kör med preg_match.

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

## #9 — MickeA.com, 2010-07-12T06:14Z

Googlade lite och hittade den [här](http://www.weberdev.com/get_example-4227.html).

Inte lika snyggt kanske, men jag behöver ingen "värre" validering.

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

## #10 — MickeA.com, 2010-07-12T06:16Z

Nej.. den där går inte heller, den här länken går inte igenom då:

```
http://www.google.se?foo=abc&foo=test#part1
```

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

## #11 — MickeA.com, 2010-07-12T07:15Z

Hittade den här nu:
<http://www.daniweb.com/forums/post1051130.html#post1051130>

Den fungerar bra på mina exempel ovan, så kör på den. Om någon kan några bättre sätt så dela gärna med er!

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

## #12 — voigtann1, 2010-07-12T07:17Z

Testar jag gjort fungerar det även på #test

```
if (preg_match('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $subject)) {
	# Successful match
} else {
	# Match attempt failed
}
```

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

## #13 — MickeA.com, 2010-07-12T08:23Z

Jo det där funkade också och var en snyggare lösning, tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/157935-kolla-url
