/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
fjerne http:// fra en streng
Fra : sune vuorela


Dato : 09-06-03 15:31

Hjesa!

jeg er ved at lave noget databaseværk hvor brugere kan poste links. Nu
er det så sådan at nogle af brugerne synes at det er sejt at skrive
http:// foran linket - og andre foretrækker at lade være.
Så det jeg skal er at jeg skal teste hvis der er http:// først - og
derefter måske fjerne det. Findes der en let genvej til den slags
eller skal man selv teste a la

$test =
$link[1].$link[2].$link[3].$link[4].$link[5].$link[6].$link[7];

if($test = "http://"){ klip i strengen }

og hvordan klipper jeg i strengen?

--
Sune

 
 
Jens Tønnesen (09-06-2003)
Kommentar
Fra : Jens Tønnesen


Dato : 09-06-03 16:06

sune vuorela <nospam@vuorela.dk> skrev i
dk.edb.internet.webdesign.serverside.php:

>jeg er ved at lave noget databaseværk hvor brugere kan poste links. Nu
>er det så sådan at nogle af brugerne synes at det er sejt at skrive
>http:// foran linket - og andre foretrækker at lade være.

Hvis linket skal bruges på en webside som et <a href>-link, så skal
der står http:// foran. Så det vil faktisk være en fordel at lade det
stå og så indsætte det i de tilfælde, hvor det mangler

>Så det jeg skal er at jeg skal teste hvis der er http:// først - og
>derefter måske fjerne det. Findes der en let genvej til den slags
>eller skal man selv teste a la

>$test =
>$link[1].$link[2].$link[3].$link[4].$link[5].$link[6].$link[7];

Jeg forstår ikke ovenstående. Hvorfor vil du sætte alle links efter
hinanden i en lang streng?

>if($test = "http://"){ klip i strengen }

>og hvordan klipper jeg i strengen?

Det enkle vil være et regulært udtryk, der checker om der står
"http://" i starten af linket.

Det kan gøres sådan:

if (ereg("^http://",$link)) {
   // gør et eller andet
}

Du kan også undersøge om det mangler ved at skrive

if (!ereg("^http://",$link)) {
   // tilføj http://
}

men det betyder at https://, news: og ftp:// fejlagtigt tilføjes
http://. Derfor skal du udvide det regulære udtryk en del:

if (ereg("^http://|https://|ftp://|news:",$link)) {
   // tilføj http://
}

Du kan selvfølgelig også bare være den hurtige løsning og blot fjerne
et eventuelt foranstillet http://

$link = ereg_replace("^http://","",$link);

men du vil som sagt få brug for det, når du skal generere siden med
links.

--
Jens Tønnesen - http://www.pressefoto.dk

Hasse R. Hansen (09-06-2003)
Kommentar
Fra : Hasse R. Hansen


Dato : 09-06-03 16:13

On Mon, 09 Jun 2003 16:30:55 +0200, sune vuorela <nospam@vuorela.dk>
wrote:

>Hjesa!
>
>jeg er ved at lave noget databaseværk hvor brugere kan poste links. Nu
>er det så sådan at nogle af brugerne synes at det er sejt at skrive
>http:// foran linket - og andre foretrækker at lade være.
>Så det jeg skal er at jeg skal teste hvis der er http:// først - og
>derefter måske fjerne det.

jeg har lavet denne lille ting, der gør det at den fjerner http://
hvis den findes ...

<?php
$test = "http://ramlev.dk";
$testny = preg_replace("/^((.+):\/\/)?/i","",$test);
echo $testny;
?>

værsgo.

mvh.
Hasse Hansen


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408936
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste