Avatar billede webint Nybegynder
18. januar 2007 - 17:18 Der er 12 kommentarer og
1 løsning

Slette hvis der er 2 skråstrege

hvis nu jeg har en tabel i min mysql hvor en kolonne indeholder:
www.google.dk/

og en anden hvor den indeholder f.eks
www.eksperten.dk//

eller måske www.lol.dk/noget//mere/tredje

hvordan får jeg så rettet sådan den opdatere mysql hvor den viser 2 /'er og IKKE opdater hvis der kun ën /..

Nogle der forstår ellers spørg
Avatar billede sunepopp Nybegynder
18. januar 2007 - 18:00 #1
Tror denne her klarer ærterne:

$res = mysql_query("SELECT id, link FROM tabel WHERE link LIKE '%//%'");
while ($r = mysql_fetch_array($res)) {
$id = $r['id'];
$nyt_link = str_replace("//",$r['link']);
mysql_query("UPDATE tabel SET link='$nyt_link' WHERE id='$id'");
}
Avatar billede showsource Seniormester
18. januar 2007 - 19:12 #2
$nyt_link = str_replace("//",$r['link']);
skal jo nok være
$nyt_link = str_replace("//", "/", $r['link']);
Avatar billede coderdk Praktikant
19. januar 2007 - 13:16 #3
Hvis dine links ikke starter med http:// - altså hvis dine links ser sådan ud: www.server.dk/folder/script.php så kan du vist gøre det med én SQL statement:

UPDATE tabel SET link = REPLACE(link,'//','/')

Ellers er du nødt til at lave noget a la sunepopps:

$qh = mysql_query("SELECT id, link FROM tabel WHERE link LIKE '%//%'");
while ( $row = mysql_fetch_array( $qh ) )
{
  $nyt_link = preg_replace( "#[^:]//#","/", $row['link'] );
  mysql_query( "UPDATE tabel SET link = '$nyt_link' WHERE id = '$id'" );
}
Avatar billede webint Nybegynder
20. januar 2007 - 14:47 #4
Nogle starter også med http:// så kan ikke bare lave en replace med // til /, for så bliver det f.eks
http:/www.side.dk/nohert/noget/
Avatar billede coderdk Praktikant
20. januar 2007 - 15:11 #5
Så skulle mit sidste forslag gerne virke.
Avatar billede webint Nybegynder
20. januar 2007 - 15:46 #6
Okay, så får du lige points for det.. men kan du ikke lige fortælle mig hvordan jeg jeg kun får www.google.dk ud her f.eks hvis jeg har:
$link = "www.google.dk/asd/?iassa/?X=A=?"

så skal den kun udskrive www.google.dk, eller hvis jeg har:
$link = "http://www.google.dk/qw/==)?/asas=/" skal den kun udskrive
http://www.google.dk

og det samme hvis den KUN starter med http:// ??
Avatar billede coderdk Praktikant
20. januar 2007 - 15:48 #7
heh du gav sunepop pointene :P

$link = "http://www.google.dk/qw/==)?/asas=/";
preg_match( "!\://(.*?)!", $link, $m );
echo $m[1];
Avatar billede coderdk Praktikant
20. januar 2007 - 15:52 #8
Eller prøv:

$link = "www.google.dk/qw/==)?/asas=/";
preg_match( "!(http://)?(www\..*?)/!", $link, $m );
echo $m[2];

Skulle virke med og uden http://
Avatar billede webint Nybegynder
20. januar 2007 - 16:16 #9
Det virkede :) Hvad så hvis et link er skrevet forkert?
$link = "http://http://www.google.dk";
så skal den kun udskrive ét http:// ?

Sidste spørgsmål :D
Avatar billede coderdk Praktikant
20. januar 2007 - 16:24 #10
Prøv at lave: preg_match linjen om til:

preg_match( "!(http://)?(www\..*?)/?$!", $link, $m );
Avatar billede webint Nybegynder
20. januar 2007 - 16:29 #11
Hvorfor får jeg så "www.google.dk" ? Hvorfor kommer http:// ikke først?

$this->AdminURL[$i] er f.eks "http://www.google.dk"

$nyt_link = preg_match( "!(http://)?(www\..*?)/?$!", $this->AdminURL[$i], $m );
$nyt_link = $m[2];

if ( substr ( $nytlink, 0, 7 ) == "http://")
{
  $nyt_link = $this->AdminURL[$i];
} else {
  $nyt_link = "http://" . $this->AdminURL[$i];
}

echo $nyt_link;
Avatar billede webint Nybegynder
20. januar 2007 - 16:30 #12
Så bliver linket f.eks http://http://www.google.dk
Avatar billede webint Nybegynder
20. januar 2007 - 16:35 #13
Hov har fundet ud af det selv. Opretter lige et spm med dine points
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