Avatar billede fixbabe Nybegynder
07. december 2006 - 20:33 Der er 12 kommentarer og
1 løsning

Fjerne / fra www adresse

Jeg har brug for at få fjernet / i variablen $www som hentes fra en database, www adressen tjekkes med if ($fp = @fsockopen($www, 80, $errno, $errstr, 5)){ osv. Og jeg har fundet ud af at hvis adressen ender på / så udskriver den fejl selvom siden er oppe.
Avatar billede simplus Nybegynder
07. december 2006 - 20:53 #1
Du kunne evt. finde længden af variablen via strlen og minusse med en. Derefter kan du bruge substr som starter ved 0 og slutter ved tallet du fandt via strlen.

et eksempel er på vej
Avatar billede simplus Nybegynder
07. december 2006 - 20:55 #2
<?php
$www = "www.eksperten.dk";
$length = strlen($www);
$newlength = $length-1;
$rest = substr($www, 0, $newlength);

echo $rest;
?>
Avatar billede fixbabe Nybegynder
07. december 2006 - 20:57 #3
problemet er at andre www adresser i databasen er uden /
Avatar billede simplus Nybegynder
07. december 2006 - 20:59 #4
Så kan du da bare lave et tjek på om de indeholder www?

Er ikke så glad for Reg.Exp selvom det nok ville være lidt klogere at bruge det i dette tilfælde, men dette virker da også:

<?php
$www = "www.eksperten.dk";
$rest = substr($www, 0, 3);

if ($rest == "www") {
  //indeholder www
}else{
  //indeholder ikke www
}
?>
Avatar billede simplus Nybegynder
07. december 2006 - 21:00 #5
Og jeg gætter på at nogle også begynder med http:// også skal der alligevel tjekkes om de begynder med www...

Tja, det kan blive lidt rodet med udelukkende brug af substr, tror ikke du kommer uden om Reg.Exp hvis du vil have det på så få linier som muligt.
Avatar billede fixbabe Nybegynder
07. december 2006 - 21:06 #6
Ingen af dem begynder med http:// det har jeg sørget for de ikke kan, og jeg ønsker at bruge Reg.Exp da scriptet skal tjekke om siden er online og ikke om der er www i adressen da flere subdomæner ikke har www
Avatar billede jensgram Nybegynder
07. december 2006 - 21:47 #7
Du vil fjerne / hvis det er sidste tegn?

if (substr($www, -1, 1) == '/') {
    $www = substr($www, 0, -1);
}
Avatar billede intenz Novice
08. december 2006 - 11:16 #8
Hvorfor ikke bare bruge:
$www = "http://www.eksperten.dk/";

$urlparts = parse_url($www);
$host = $urlparts['host'];

Så udskriver $host www.eksperten.dk uanset om $www indeholder url med eller uden /, men også hvis den f.eks. er http://www.eksperten.dk/spm/749489
Avatar billede fixbabe Nybegynder
08. december 2006 - 13:34 #9
intenz din løsning vil ikke virker da den failer når der ikke er http:// foran hvilket der ikke er på nogen af de adresser i min database
Avatar billede fixbabe Nybegynder
08. december 2006 - 13:39 #10
jensgram din løsning virker perfekt, smid et svar :)
Avatar billede 3xm Nybegynder
08. december 2006 - 16:29 #11
en mere smidig løsning vil være at bruge trim-funktionerne. i dette tilfælde rtrim()

http://dk2.php.net/manual/en/function.rtrim.php

=)
Avatar billede intenz Novice
08. december 2006 - 22:19 #12
ellers kunne du jo bare ændre:
$host = $urlparts['host'];

til
$host = "http://".$urlparts['host'];
Avatar billede jensgram Nybegynder
09. december 2006 - 12:04 #13
Tjek.
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