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