/ 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
Checke string for gyldige hex ved brug af ~
Fra : Ukendt


Dato : 05-11-03 18:45

Hej NG.

Jeg mangler en funktion der får en string som parameter, f.eks. (67AC4D) og
så checker om værdien af alle karakterer i strengen, er gyldige hex-værdier.

Kan ikke finde en indbygget PHP funktion der kan tage f.eks. et array som
parameter og checke en streng for dette.

Jeg tænkte så, om ikke et regulært udtryk var metoden til dette.

Kan nogen hjælpe med en forslag.

Venlig hilsen Leif.



 
 
Kim Emax (05-11-2003)
Kommentar
Fra : Kim Emax


Dato : 05-11-03 19:21

Leif wrote:

> Jeg mangler en funktion der får en string som parameter, f.eks.
> (67AC4D) og så checker om værdien af alle karakterer i strengen, er
> gyldige hex-værdier.
>
> Kan ikke finde en indbygget PHP funktion der kan tage f.eks. et array
> som parameter og checke en streng for dette.
>
> Jeg tænkte så, om ikke et regulært udtryk var metoden til dette.
>
> Kan nogen hjælpe med en forslag.

if(dechex($input) > 2147483647))
print "dette er ikke et valid hexadecimal tal";

Er det ikke godt nok?

--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Ukendt (05-11-2003)
Kommentar
Fra : Ukendt


Dato : 05-11-03 19:58

Hej.
"Kim Emax" <newsgroup@remove-emax.dk> skrev i en meddelelse
news:bcbqb.25181$jf4.1364182@news000.worldonline.dk...
> Leif wrote:
>
>
> if(dechex($input) > 2147483647))
> print "dette er ikke et valid hexadecimal tal";
>
> Er det ikke godt nok?

Det kan jeg ikke lige gennemskue umiddelbart.

Det tal du spørger på, hvad er det lige??

Fordi FFFFFF i dec giver 16777215.

Og så vidt jeg kan se, er det tal som denne funktion returnerer en samlet
værdi for det tal du spørger på, men hvad returnerer funktionen egentlig,
hvis der bliver spurgt med en karakter, der ikke er gyldig hex, f.eks. g-z
eller andre karakterer for den sags skyld. Jeg er interesseret i at der
bliver valideret på (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,A,B,C,D,E,F).

Hilsen Leif.
> --
> Take Care
> Kim Emax - master|minds: http://www.masterminds.dk
> http://www.emax.dk - http://www.ayianapa.dk
> Køb din vin online på http://www.gmvin.dk,
> Danmarks måske mest avancerede VinWebShop
>
>



Kim Emax (05-11-2003)
Kommentar
Fra : Kim Emax


Dato : 05-11-03 22:26

Leif wrote:

> Det tal du spørger på, hvad er det lige??

taget fra manualen for dechex

> Fordi FFFFFF i dec giver 16777215.
>
> Og så vidt jeg kan se, er det tal som denne funktion returnerer en
> samlet værdi for det tal du spørger på, men hvad returnerer
> funktionen egentlig, hvis der bliver spurgt med en karakter, der ikke
> er gyldig hex, f.eks. g-z eller andre karakterer for den sags skyld.
> Jeg er interesseret i at der bliver valideret på
> (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,A,B,C,D,E,F).

Hvis du kender værdierne for de forskellige kombinationer, hvorfor så ikke
bare lave en funktion selv?

Hvis det du mener er at du vil lave et RegEx, der kun tillader ovennævnte,
så er det dette du er ude efter:

if(eregi("^[0-9a-f]{6}$", $input))
print "valid hex chars";

Umiddelbart kender jeg ikke hex til bunds, så jeg ved om alle kombinationer
af de karakterer er gyldige. Det kan du evt. generere med 2 for løkker?

--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Jacob Atzen (05-11-2003)
Kommentar
Fra : Jacob Atzen


Dato : 05-11-03 23:45

"Kim Emax" <newsgroup@remove-emax.dk> writes:

> Umiddelbart kender jeg ikke hex til bunds, så jeg ved om alle kombinationer
> af de karakterer er gyldige. Det kan du evt. generere med 2 for løkker?

Hex er bare 16-talssystemet. Alle permutationer af 0-9'er og A-F'er
angiver et hexadecimaltal ligesåvel som alle permutationer af 0-9'er
angiver et tal i 10-talssystemet.

--
Med venlig hilsen
- Jacob Atzen

Ukendt (05-11-2003)
Kommentar
Fra : Ukendt


Dato : 05-11-03 20:08


"Kim Emax" <newsgroup@remove-emax.dk> skrev i en meddelelse
news:bcbqb.25181$jf4.1364182@news000.worldonline.dk...
> if(dechex($input) > 2147483647))
> print "dette er ikke et valid hexadecimal tal";
>
> Er det ikke godt nok?
Nej.

Ved nærmere test af funktionen, returnerer den faktisk 0 i mange forskellige
situationer, både når der bruges gyldige hex og ugyldige hexværdier på 6
karakterer.

Mvh. Leif.



> --
> Take Care
> Kim Emax - master|minds: http://www.masterminds.dk
> http://www.emax.dk - http://www.ayianapa.dk
> Køb din vin online på http://www.gmvin.dk,
> Danmarks måske mest avancerede VinWebShop
>
>



Ukendt (05-11-2003)
Kommentar
Fra : Ukendt


Dato : 05-11-03 20:15

Hej.

Jeg har prøvet at lave dette udtryk:

if(ereg([[:xdigig:]], $string)
echo "Gyldig hexværdi.";
else "Ikke gyldig hexværdi";

men er faktisk ikke klar over, om det kan bruges her.

Nogen der ved det??

Mvh. Leif.


"Leif" <?> skrev i en meddelelse
news:3fa93737$0$45360$edfadb0f@dread11.news.tele.dk...
> Hej NG.
>
> Jeg mangler en funktion der får en string som parameter, f.eks. (67AC4D)
og
> så checker om værdien af alle karakterer i strengen, er gyldige
hex-værdier.
>
> Kan ikke finde en indbygget PHP funktion der kan tage f.eks. et array som
> parameter og checke en streng for dette.
>
> Jeg tænkte så, om ikke et regulært udtryk var metoden til dette.
>
> Kan nogen hjælpe med en forslag.
>
> Venlig hilsen Leif.
>
>



Ukendt (05-11-2003)
Kommentar
Fra : Ukendt


Dato : 05-11-03 21:10

Ja, så lykkedes det alligvel.

if(ereg("^[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]",
$new_bgcolor_nav))
echo " = Gyldig hexværdi";
else echo " = Ikke gyldig hexværdi";

Gør det.

Leif.

"Leif" <?> skrev i en meddelelse
news:3fa93737$0$45360$edfadb0f@dread11.news.tele.dk...
> Hej NG.
>
> Jeg mangler en funktion der får en string som parameter, f.eks. (67AC4D)
og
> så checker om værdien af alle karakterer i strengen, er gyldige
hex-værdier.
>
> Kan ikke finde en indbygget PHP funktion der kan tage f.eks. et array som
> parameter og checke en streng for dette.
>
> Jeg tænkte så, om ikke et regulært udtryk var metoden til dette.
>
> Kan nogen hjælpe med en forslag.
>
> Venlig hilsen Leif.
>
>



Kasper Garnæs (05-11-2003)
Kommentar
Fra : Kasper Garnæs


Dato : 05-11-03 22:06

Leif <?> wrote:

> "^[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]"

Eller bare "^[0-9A-F]{6}$"

---
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Ukendt (05-11-2003)
Kommentar
Fra : Ukendt


Dato : 05-11-03 22:21

Tak skal du ha´. Hvor frækt kan det blive?

Jeg ledte efter noget lignende, men kunne ikke få det til at hænge sammen.

Smart.

Mvh. leif.


"Kasper Garnæs" <demos@mailme.dk> skrev i en meddelelse
news:bobonv$61f$1@news.cybercity.dk...
> Leif <?> wrote:
>
> > "^[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
>
> Eller bare "^[0-9A-F]{6}$"
>
> ---
> Med venlig hilsen / Regards
> Kasper Garnæs
> http://kasper.garnaes.dk
>
>



Kasper Garnæs (06-11-2003)
Kommentar
Fra : Kasper Garnæs


Dato : 06-11-03 00:21

Leif <?> wrote:
>
> "Kasper Garnæs" <demos@mailme.dk> skrev i en meddelelse
> news:bobonv$61f$1@news.cybercity.dk...
>> Leif <?> wrote:
>>
>>> "^[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
>>
>> Eller bare "^[0-9A-F]{6}$"
>
> Tak skal du ha´.

Det var så lidt.

>Hvor frækt kan det blive?

Tja - hvis a-f (små bogstaver) også skal med kan du jo benytte
"^[0-9A-Fa-f]{6}$". Kinky stuff...

---
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Jesper Brunholm (06-11-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 06-11-03 09:10

Leif wrote:
> Jeg mangler en funktion der får en string som parameter, f.eks. (67AC4D) og
> så checker om værdien af alle karakterer i strengen, er gyldige hex-værdier.

Hvorfor ereg, så vidt jeg kan se må flg string-fkt kunne bruges:
http://dk.php.net/strspn

- fra manualen:

strspn

(PHP 3>= 3.0.3, PHP 4 )
strspn -- Find length of initial segment matching mask
Description
int strspn ( string str1, string str2)

Returns the length of the initial segment of str1 which consists
entirely of characters in str2.

The line of code:

<?php
$var = strspn("42 is the answer, what is the question ...", "1234567890");
?>

will assign 2 to $var, because the string "42" will be the longest
segment containing characters from "1234567890".

See also strcspn().

- ereg funktioner er gode, men string-funktioner er ofte hurtigere.

mvh

Jesper Brunholm


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste