|
| 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
| |
|
|