/ 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
ÆØÅ i links på Google
Fra : Harald


Dato : 17-03-07 12:45

Hej

Hvis man søger på dette:
http://www.google.dk/search?hl=da&q=%22Da+lampen+t%C3%A6ndtes+og+andre+jyske+fort%C3%A6llinger%22&btnG=S%C3%B8g&meta=

Får man lidt nede på siden et link til bogtorvet som ser således ud på
skærmen:
www.bogtorvet.net/liste.php?s=Å1

Men hvis man trykker får man dette link:
http://www.bogtorvet.net/liste.php?s=%C3%851

og så går det galt da min kode ikke genkender %C3%851 som et Å, så hvordan
gør jeg det?

/HK



 
 
Johan Holst Nielsen (17-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 17-03-07 12:56

Harald wrote:
> Hej
>
> Hvis man søger på dette:
> http://www.google.dk/search?hl=da&q=%22Da+lampen+t%C3%A6ndtes+og+andre+jyske+fort%C3%A6llinger%22&btnG=S%C3%B8g&meta=
>
> Får man lidt nede på siden et link til bogtorvet som ser således ud på
> skærmen:
> www.bogtorvet.net/liste.php?s=Å1
>
> Men hvis man trykker får man dette link:
> http://www.bogtorvet.net/liste.php?s=%C3%851
>
> og så går det galt da min kode ikke genkender %C3%851 som et Å, så hvordan
> gør jeg det?

Det er fordi strengen %C3%851 er UTF-8 encoded...

Du kan evt lave en konvereringen således

<?php
if([der er ingen liste med det bogstav i $_GET['s']]) {
$s = utf8_decode(rawurldecode($_GET['s']));
?>
}
?>

echo utf8_decode(rawurldecode('%C3%851')); vil returnere Å1

Mvh
Johan

Harald (17-03-2007)
Kommentar
Fra : Harald


Dato : 17-03-07 13:43

"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
news:45fbd72c$0$175$157c6196@dreader1.cybercity.dk...
> Harald wrote:
>> Hej
>>
>> Hvis man søger på dette:
>> http://www.google.dk/search?hl=da&q=%22Da+lampen+t%C3%A6ndtes+og+andre+jyske+fort%C3%A6llinger%22&btnG=S%C3%B8g&meta=
>>
>> Får man lidt nede på siden et link til bogtorvet som ser således ud på
>> skærmen:
>> www.bogtorvet.net/liste.php?s=Å1
>>
>> Men hvis man trykker får man dette link:
>> http://www.bogtorvet.net/liste.php?s=%C3%851
>>
>> og så går det galt da min kode ikke genkender %C3%851 som et Å, så
>> hvordan gør jeg det?
>
> Det er fordi strengen %C3%851 er UTF-8 encoded...
>
> Du kan evt lave en konvereringen således
>
> <?php
> if([der er ingen liste med det bogstav i $_GET['s']]) {
> $s = utf8_decode(rawurldecode($_GET['s']));
> ?>
> }
> ?>
>
> echo utf8_decode(rawurldecode('%C3%851')); vil returnere Å1

Det ser ud til at virker også selvom jeg dropper rawurldecode funktionen. Så
har jeg et nyt spørgsmål.
Hvordan laver man lettest funktionen "der er ingen liste med det bogstav"
som checker om bogstavet er mellem A..Z+Æ,Ø,Å?

/HK



Harald (17-03-2007)
Kommentar
Fra : Harald


Dato : 17-03-07 13:55

"Harald" <nomail@noname.dk> skrev i en meddelelse
news:45fbe259$0$15895$edfadb0f@dtext01.news.tele.dk...
> "Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
> news:45fbd72c$0$175$157c6196@dreader1.cybercity.dk...
>> Harald wrote:
>>> Hej
>>>
>>> Hvis man søger på dette:
>>> http://www.google.dk/search?hl=da&q=%22Da+lampen+t%C3%A6ndtes+og+andre+jyske+fort%C3%A6llinger%22&btnG=S%C3%B8g&meta=
>>>
>>> Får man lidt nede på siden et link til bogtorvet som ser således ud på
>>> skærmen:
>>> www.bogtorvet.net/liste.php?s=Å1
>>>
>>> Men hvis man trykker får man dette link:
>>> http://www.bogtorvet.net/liste.php?s=%C3%851
>>>
>>> og så går det galt da min kode ikke genkender %C3%851 som et Å, så
>>> hvordan gør jeg det?
>>
>> Det er fordi strengen %C3%851 er UTF-8 encoded...
>>
>> Du kan evt lave en konvereringen således
>>
>> <?php
>> if([der er ingen liste med det bogstav i $_GET['s']]) {
>> $s = utf8_decode(rawurldecode($_GET['s']));
>> ?>
>> }
>> ?>
>>
>> echo utf8_decode(rawurldecode('%C3%851')); vil returnere Å1
>
> Det ser ud til at virker også selvom jeg dropper rawurldecode funktionen.
> Så har jeg et nyt spørgsmål.
> Hvordan laver man lettest funktionen "der er ingen liste med det bogstav"
> som checker om bogstavet er mellem A..Z+Æ,Ø,Å?

I f.eks. Delphi kan det gøres meget let således:
if not (bogstav in ['A'..'Z','Æ','Ø','Å'] then ...

/HK



Johan Holst Nielsen (17-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 17-03-07 14:03

Harald wrote:
>>> echo utf8_decode(rawurldecode('%C3%851')); vil returnere Å1
>> Det ser ud til at virker også selvom jeg dropper rawurldecode funktionen.
>> Så har jeg et nyt spørgsmål.
>> Hvordan laver man lettest funktionen "der er ingen liste med det bogstav"
>> som checker om bogstavet er mellem A..Z+Æ,Ø,Å?
>
> I f.eks. Delphi kan det gøres meget let således:
> if not (bogstav in ['A'..'Z','Æ','Ø','Å'] then ...

$bogstavListe = array('A','B','C'....'Å');

if(!in_array($_GET['s'],$bogstavListe)) {
echo 'Ingen ligste med det bogstav';
}

mvh
johan

Harald (17-03-2007)
Kommentar
Fra : Harald


Dato : 17-03-07 14:36

"Johan Holst Nielsen" <spam@phpgeek.dk> skrev i en meddelelse
news:45fbe704$0$141$157c6196@dreader2.cybercity.dk...
> Harald wrote:
>>>> echo utf8_decode(rawurldecode('%C3%851')); vil returnere Å1
>>> Det ser ud til at virker også selvom jeg dropper rawurldecode
>>> funktionen. Så har jeg et nyt spørgsmål.
>>> Hvordan laver man lettest funktionen "der er ingen liste med det
>>> bogstav" som checker om bogstavet er mellem A..Z+Æ,Ø,Å?
>>
>> I f.eks. Delphi kan det gøres meget let således:
>> if not (bogstav in ['A'..'Z','Æ','Ø','Å'] then ...
>
> $bogstavListe = array('A','B','C'....'Å');
>
> if(!in_array($_GET['s'],$bogstavListe)) {
> echo 'Ingen ligste med det bogstav';
> }

Du fik mig ledt på rette vej, men jeg syntes det var lidt rigeligt at skulle
fylde alle bogstaver ind i et array så jeg har lavet det således:

$dkliste = array('Æ','Ø','Å','*');
if (!( ((ord($bogstav)>=ord('A')) and (ord($bogstav)<=ord('Z'))) or
(in_array($bogstav,$dkliste)) )) {

/HK



Peter Brodersen (17-03-2007)
Kommentar
Fra : Peter Brodersen


Dato : 17-03-07 15:22

On Sat, 17 Mar 2007 14:03:10 +0100, Johan Holst Nielsen
<spam@phpgeek.dk> wrote:

>$bogstavListe = array('A','B','C'....'Å');
>
>if(!in_array($_GET['s'],$bogstavListe)) {
> echo 'Ingen ligste med det bogstav';
>}

To varianter:

1. range() kan også benyttes som en sekvens af tegn fra A-Z

2. regulære udtryk kunne være en mulighed i miljøer, hvor folk er vant
til at gennemskue dem.

--
- Peter Brodersen
Kendt fra Internet

Johan Holst Nielsen (17-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 17-03-07 15:36

Peter Brodersen wrote:
> On Sat, 17 Mar 2007 14:03:10 +0100, Johan Holst Nielsen
> <spam@phpgeek.dk> wrote:
>
>> $bogstavListe = array('A','B','C'....'Å');
>>
>> if(!in_array($_GET['s'],$bogstavListe)) {
>> echo 'Ingen ligste med det bogstav';
>> }
>
> To varianter:
>
> 1. range() kan også benyttes som en sekvens af tegn fra A-Z

range() er blot problematisk hvis du har noget i A-B intet i C, noget
til E til G og intet i H osv... (nu har jeg ikke tjekket Harald's liste
om det er tilfældet).

> 2. regulære udtryk kunne være en mulighed i miljøer, hvor folk er vant
> til at gennemskue dem.

Rigtigt :) Er også en mulighed. Aner dog ikke hvorvidt det vil være mere
eller mindre performancemæssigt at smide det i regex frem for et array
og tjekke på array's indhold. I sidste ende burde listen af bogstaver jo
nok vises ud fra en database forespørgsel (som jeg formoder der er i
Haralds tilfælde?) Noget ala SELECT DISTINCT LEFT(navn,1) as bogstav
FROM foo

Mvh
johan

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

Månedens bedste
Årets bedste
Sidste års bedste