|
| Formatere streng til bogstaverne a-z Fra : Christoffer Kjeldgaa~ |
Dato : 22-01-05 19:07 |
|
Hejsa,
Jeg har nogle brugerinputs på min hjemmeside, som jeg godt kunne
tænke mig at formatere til kun at indeholde tegn fra a til z samt
bindestreger mellem ord. Altså på en sådan måde at en steng som
følgende:
"Jens var ude med sin kælk i snevejret"
bliver til:
"jens-var-ude-med-sin-kaelk-snevejret"
uden nogle specialtegn, danske bogstaver og hvad man ellers kunne
finde på. Jeg har kigget lidt på str_replace(), preg_replace() og
ereg(), men har ikke fundet nogen skudsikker løsning. Hvordan kan
jeg nemmest få løst mit problem?
Med venlig hilsen,
Christoffer Kjeldgaard
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Arnulf Sortland (22-01-2005)
| Kommentar Fra : Arnulf Sortland |
Dato : 22-01-05 19:12 |
|
Christoffer Kjeldgaard skrev:
> Hejsa,
>
> Jeg har nogle brugerinputs på min hjemmeside, som jeg godt kunne
> tænke mig at formatere til kun at indeholde tegn fra a til z samt
> bindestreger mellem ord. Altså på en sådan måde at en steng som
> følgende:
>
> "Jens var ude med sin kælk i snevejret"
>
> bliver til:
>
> "jens-var-ude-med-sin-kaelk-snevejret"
>
> uden nogle specialtegn, danske bogstaver og hvad man ellers kunne
> finde på. Jeg har kigget lidt på str_replace(), preg_replace() og
> ereg(), men har ikke fundet nogen skudsikker løsning. Hvordan kan
> jeg nemmest få løst mit problem?
>
> Med venlig hilsen,
> Christoffer Kjeldgaard
Hva med: http://dk.php.net/str_replace
arnulf @ http://rlb.no/
| |
Benny Nissen (22-01-2005)
| Kommentar Fra : Benny Nissen |
Dato : 22-01-05 19:14 |
|
Christoffer Kjeldgaard used his keyboard to write :
> "Jens var ude med sin kælk i snevejret"
>
> bliver til:
>
> "jens-var-ude-med-sin-kaelk-snevejret"
>
> uden nogle specialtegn, danske bogstaver og hvad man ellers kunne
> finde på. Jeg har kigget lidt på str_replace(), preg_replace() og
> ereg(), men har ikke fundet nogen skudsikker løsning. Hvordan kan
> jeg nemmest få løst mit problem?
Du kan da sagtens lave det med en håndfuld str_replace, men det bliver
ikke vildt smukt:
$mystring = str_replace("æ", "ae" ,$mystring);
$mystring = str_replace("ø", "oe" ,$mystring);
$mystring = str_replace("å", "aa" ,$mystring);
$mystring = str_replace(" ", "-" ,$mystring);
o.s.v.
--
Benny
| |
Christoffer Kjeldgaa~ (22-01-2005)
| Kommentar Fra : Christoffer Kjeldgaa~ |
Dato : 22-01-05 19:18 |
|
Benny Nissen skrev:
> Du kan da sagtens lave det med en håndfuld str_replace, men det bliver
> ikke vildt smukt:
>
> $mystring = str_replace("æ", "ae" ,$mystring);
> $mystring = str_replace("ø", "oe" ,$mystring);
> $mystring = str_replace("å", "aa" ,$mystring);
> $mystring = str_replace(" ", "-" ,$mystring);
Det var også noget i den stil jeg havde tænkt mig, men så har problemet
været at der hele tiden har været et eller andet specialtegn jeg ikke har
fået med. Derfor tænkte jeg at det var en mulighed "at gå den anden vej
omkring" og sige, at det kun er nogle bestemte tegn der må optræde i
strengen. Men hvis det er den eneste mulighed der er, må jeg jo bare lave
det med str_replace.
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jacob Atzen (23-01-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 23-01-05 00:28 |
|
On 2005-01-22, Christoffer Kjeldgaard <christoffer@sappy.dk> wrote:
> Det var også noget i den stil jeg havde tænkt mig, men så har problemet
> været at der hele tiden har været et eller andet specialtegn jeg ikke har
> fået med. Derfor tænkte jeg at det var en mulighed "at gå den anden vej
> omkring" og sige, at det kun er nogle bestemte tegn der må optræde i
> strengen.
Du kan bruge preg_match() og venner til at sikre dig, at kun tilladte
tegn forekommer i strengen. F.eks:
$goodString = 'hello-world';
if(preg_match('|^[a-z\-]*$|', $goodString)) {
echo "Good string matches\n";
}
$badString = 'hello-world!';
if(!preg_match('|^[a-z\-]*$|', $badString)) {
echo "Bad string does not match\n";
}
--
Med venlig hilsen
- Jacob Atzen
| |
Arnulf Sortland (22-01-2005)
| Kommentar Fra : Arnulf Sortland |
Dato : 22-01-05 19:20 |
|
Benny Nissen skrev:
> Christoffer Kjeldgaard used his keyboard to write :
>
>> "Jens var ude med sin kælk i snevejret"
>>
>> bliver til:
>>
>> "jens-var-ude-med-sin-kaelk-snevejret"
>>
>> uden nogle specialtegn, danske bogstaver og hvad man ellers kunne
>> finde på. Jeg har kigget lidt på str_replace(), preg_replace() og
>> ereg(), men har ikke fundet nogen skudsikker løsning. Hvordan kan
>> jeg nemmest få løst mit problem?
>
>
> Du kan da sagtens lave det med en håndfuld str_replace, men det bliver
> ikke vildt smukt:
>
> $mystring = str_replace("æ", "ae" ,$mystring);
> $mystring = str_replace("ø", "oe" ,$mystring);
> $mystring = str_replace("å", "aa" ,$mystring);
> $mystring = str_replace(" ", "-" ,$mystring);
>
> o.s.v.
eller:
$phrase ='Jens var ude med sin kælk i snevejret';
$search = array(' ', 'æ', 'ø', ...
$replace= array('-','ae','oe', ...
print str_replace($search, $replace, $phrase);
arnulf @ http://rlb.no/
| |
Benny Nissen (22-01-2005)
| Kommentar Fra : Benny Nissen |
Dato : 22-01-05 19:40 |
|
Benny Nissen submitted this idea :
> Du kan da sagtens lave det med en håndfuld str_replace, men det bliver ikke
> vildt smukt:
>
> $mystring = str_replace("æ", "ae" ,$mystring);
> $mystring = str_replace("ø", "oe" ,$mystring);
> $mystring = str_replace("å", "aa" ,$mystring);
> $mystring = str_replace(" ", "-" ,$mystring);
.... og som sædvanligt har php allerede en mere smart funtion til det
http://dk.php.net/manual/da/function.strtr.php
--
Benny
| |
Benny Nissen (23-01-2005)
| Kommentar Fra : Benny Nissen |
Dato : 23-01-05 01:32 |
|
Christoffer Kjeldgaard explained on 22-01-2005 :
> Hvordan kan
> jeg nemmest få løst mit problem?
Ved ikke, om det er den nemmeste måde, men den virker:
<?php
// Inddata
$mystring = "Her er både æ'er og store Ø'er og andre tegn! ... eller
hvad ?";
// Lav oversættelsesarray; danske bogstaver og mellemrum
$trans = array("æ" => "ae", "ø" => "oe", "å" => "aa", "Æ" => "Ae", "Ø"
=> "Oe", "Å" => "Aa", " " => "-");
// Oversæt danske tegn og mellemrum
$mystring = strtr($mystring, $trans);
// Fjern resten; $mystring indeholderefter det ønskede
$mystring = preg_replace('|[^a-zA-Z\-]|', '', $mystring);
?>
--
Benny
| |
|
|