Avatar billede Slettet bruger
16. marts 2005 - 20:51 Der er 11 kommentarer og
1 løsning

preg_replace spg

Jeg har en variabel hvor der måske er http://www. på i starten.. ellers starter den med www. eller måske ikke noget

Jeg vil gerne sætte http://www. på den ligemeget hvad. dvs. ligemeget hvad skal variablen starte med http://www.

Hvordan kan det lade sig gøre med preg_replace?

jeg er begyndt lidt, men kan ikke finde ud af at få de gamle variabler med over i den nye variabel
Avatar billede bromer Nybegynder
16. marts 2005 - 20:54 #1
Prøv at smid den kode som du har lavet men ikke virker
Avatar billede Slettet bruger
16. marts 2005 - 20:54 #2
jeg har "prøvet" på:

preg_replace("/^(www).*|^http:\/\/www.*|.*/", "/^http:\/\/www/", $row['hjemmeside'])
Avatar billede Slettet bruger
16. marts 2005 - 20:56 #3
og som det nok kan ses er problemet at jeg ikke kan få alt det der er efter http://, www, eller intet. Ind i 2 parameter
Avatar billede bromer Nybegynder
16. marts 2005 - 20:59 #4
Der har været en del spørgsmål af den karakter her på eksperten, så der kunne du have fundet svaret rimelig hurtigt. Ellers hvis du ser på funktionens beskrivelse [1] kommer der følgende frem:

"
Replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern.
"

[1] http://dk2.php.net/preg_replace
Avatar billede Slettet bruger
16. marts 2005 - 21:00 #5
jeg ser på funktionens beskrivelse.. jeg har læst det hele igennem så mange gange, at jeg kan det i hovedet.. jeg kan bare ikke forstå det (sikkert mig der er dum :o))
Avatar billede bromer Nybegynder
16. marts 2005 - 21:01 #6
Dit første match er gemt i \\0 og det næste i \\1. Bedre?
Avatar billede Slettet bruger
16. marts 2005 - 21:04 #7
jep. er med nu. Men det er ikke min match jeg gerne vil have ind, det er alt det bagefter min match .. hvis du forstår hvor jeg vil hen med det her
Avatar billede bromer Nybegynder
16. marts 2005 - 21:40 #8
Det var lidt tid siden jeg havde rodet med det: Hvis jeg kører følgende:

<?
$a[] = 'http://www.dankort.dk';
$a[] = 'www.dankort.dk';
$a[] = 'dankort.dk';
foreach($a as $b) {
echo "\n\n" . $b;
echo "\n" . preg_replace("/(^www.|^http:\/\/www\.|^)/",'http://www.$2',$b);
}
print "\n\n";
?>

Får jeg følgende output:
http://www.dankort.dk
http://www.dankort.dk

www.dankort.dk
http://www.dankort.dk

dankort.dk
http://www.dankort.dk
Avatar billede bromer Nybegynder
16. marts 2005 - 21:46 #9
Gav det mere mening? Så vidt jeg kan se kan du bare brug den preg_replace jeg kom frem til..
Avatar billede Slettet bruger
17. marts 2005 - 15:57 #10
Det giver meget mening for mig nu. :o)

mange tak for det. smid svar tak.

jeg brugte dette:

$navn = preg_replace("/(^www.|^http:\/\/|^http:\/\/www\.|^)/",'www.$2', $navn);
$navn = preg_replace("/(www\.)+/", "www.", $navn);

Jeg lavede to fordi der ellers kom www.www.www. på nogle, og www.www. på andre
Avatar billede Slettet bruger
20. marts 2005 - 23:32 #11
Smid svar tak :o)
Avatar billede bromer Nybegynder
20. marts 2005 - 23:35 #12
yes sir
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