Avatar billede dennism Nybegynder
31. maj 2006 - 08:43 Der er 13 kommentarer og
1 løsning

PHP: ændrer variabel?

Jeg har en variabel som f.eks. kan indeholde disse værdier for et domæne navn (afhængigt af hvad brugeren indtastet):
demaweb.dk
www.demaweb.dk
www.demaweb
demaweb.com

osv.

Jeg vil gøre have en funktion, som uanset hvad der bliver indtastet sikrer at variablens værdi bliver ændret til kun "demaweb".

Nogen der kan hjælpe mig med det?

Det skal bruges til en domæne søger.
Avatar billede Slettet bruger
31. maj 2006 - 08:54 #1
man kunne til nød vel bruge:

$arr = explode(".", $variabel);
$domain = $arr[(count($arr)-1)];

Dette kræver dog at $variabel ser ud som en af dine ovenstående.
Avatar billede dennism Nybegynder
31. maj 2006 - 11:54 #2
Ingen andre forslag?
Avatar billede dennism Nybegynder
01. juni 2006 - 09:43 #3
Er der ingen der kan hjælpe her? :(
Avatar billede Slettet bruger
01. juni 2006 - 10:28 #4
hmm, min første kode var da vist ikke optimal.
Men det var også bare et hurtig input.

Efter at have tænkt det igennem, kunne man jo egentlig bare fjerne www. fra strengen hvis det findes, og derefter dele den op med de punktumer der nu findes. Om det findes eller ej, vil stadig resulterer i at domæne navnet vil være det første i det array vi deler op.

Altså:

<?php

$variabel = "demaweb.com";

$variabel = ereg_replace("www.","", $variabel);
$arr = explode(".", $variabel);
echo $arr[0];

?>
Avatar billede dennism Nybegynder
01. juni 2006 - 10:37 #5
Den var vist bedre ;) Tak for hjælpen
Avatar billede dennism Nybegynder
01. juni 2006 - 10:37 #6
Til andre interesserede, så endte jeg med:

$_POST[domain] = StrToLower($_POST[domain]);
$_POST[domain] = ereg_replace("www.","", $_POST[domain]);
$_POST[domain] = ereg_replace("http://","", $_POST[domain]);
$array = explode(".", $_POST[domain]);
$_POST[domain] = $array[0];
Avatar billede Slettet bruger
01. juni 2006 - 10:39 #7
Men det er mest logisk at fjerne http:// først.
Men hvad hvis de så skrive ftp:// eller https:// ?
Avatar billede dennism Nybegynder
01. juni 2006 - 10:41 #8
$_POST[domain] = StrToLower($_POST[domain]);
$_POST[domain] = ereg_replace("http://","", $_POST[domain]);
$_POST[domain] = ereg_replace("https://","", $_POST[domain]);
$_POST[domain] = ereg_replace("ftp://","", $_POST[domain]);
$_POST[domain] = ereg_replace("www.","", $_POST[domain]);
$array = explode(".", $_POST[domain]);
$_POST[domain] = $array[0];


Var det bedre? :)
Avatar billede Slettet bruger
01. juni 2006 - 11:01 #9
Ja men stadig ikke helt sikkert for hvad nu hvis de skriver en IP?
Skal det afvises?
Avatar billede dennism Nybegynder
01. juni 2006 - 11:02 #10
Alternativt kunne man fjerne alle .'er i variablen. Hvad synes du om det forslag?
Avatar billede Slettet bruger
01. juni 2006 - 13:29 #11
"Det skal bruges til en domæne søger."

Der findes to slags bruger.
1. Folk der har købt domæner før
2. Folk der ikke har købt domæner før.

De der har lavet et domæneopslag, ved hvad feltet skal indeholde.
De der aldrig har prøvet det før, følger vejledningen.

Lav en lille tekst til hvordan feltet skal bruges, så skulle den da være klaret.
Avatar billede dennism Nybegynder
01. juni 2006 - 13:34 #12
Det har du fuldstændig ret i.
Problemer bare, at jeg på mit website har et "quick" domæne søger ude i siden, hvor der rent design mæssigt ikke er plads til de store vejledninger :)
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:35 #13
"Var det bedre? :)"
- Nej, det er $_POST['domain'] IKKE $_POST[domain] , husk husk husk :p

Derudover kan I jo bare bruge denne funktion: http://dk.php.net/manual/en/function.parse-url.php og så bruge den første metode med at  explode igen :)
Avatar billede dennism Nybegynder
03. juni 2006 - 12:32 #14
Hvorfor er det, at det er vigtigt at huske de ''?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester