Mja, belachelijke titel, maar weet ff niet hoe ik het moet omschrijven.
Enfin, sinds een tijdje piel ik dus aan in PHP, voorheen was dat in Perl.
Als ik in Perl bezig was, gebruikte ik het volgende (mijzelf aangeleerde) truukje:
Wat dus eigenlijk neer komt op het volgende;
• Bevat de variabele $action een waarde ?
• Indien ja, kijken of die inhoud toegestaan is (controleren dmv een array)
• Indien de waarde OK is, een subroutine aanroepen met dezelfde naam als de inhoud.
Oftewel, staat de variabele de inhoud woei heeft ($action = "woei") dan word de subroutine &woei aangeroepen.
Hoe krijg ik nou ziets in PHP voor elkaar
Ik weet dat ik de variabele namen iig al wat beter binnen kan krijgen dmv hetvoglende:
Echter, hoe kan ik een subroutine c.q. function aanroepen aan de hand van een variabele inhoud netzoals ik mijn Perl scriptjes doe ?
* Koffie hoopt dat iemand me nog een beetje kan volgen ...
Enfin, sinds een tijdje piel ik dus aan in PHP, voorheen was dat in Perl.
Als ik in Perl bezig was, gebruikte ik het volgende (mijzelf aangeleerde) truukje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| sub post_get {
############################################################################
# POST actie omzetten naar vars
############################################################################
if ($ENV{'REQUEST_METHOD'} eq 'POST')
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$contents{$name} = $value;
}
}
############################################################################
############################################################################
# GET actie omzetten naar vars
############################################################################
if ($ENV{'REQUEST_METHOD'} eq 'GET')
{
if (length ($ENV{'QUERY_STRING'}) > 0){
$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $buffer);
foreach $pair (@pairs){
($name, $value) = split(/=/, $pair);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$contents{$name} = $value;
}
}
}
############################################################################
}
if ($action ne '')
{
foreach $allowed_action (@allowed_action)
{
if ($action eq $allowed_action) { &$action; }
}
} |
Wat dus eigenlijk neer komt op het volgende;
• Bevat de variabele $action een waarde ?
• Indien ja, kijken of die inhoud toegestaan is (controleren dmv een array)
• Indien de waarde OK is, een subroutine aanroepen met dezelfde naam als de inhoud.
Oftewel, staat de variabele de inhoud woei heeft ($action = "woei") dan word de subroutine &woei aangeroepen.
Hoe krijg ik nou ziets in PHP voor elkaar
Ik weet dat ik de variabele namen iig al wat beter binnen kan krijgen dmv hetvoglende:
PHP:
1
2
| while(list($key,$val)=each($_POST)) { $$key = $val; } while(list($key,$val)=each($_GET)) { $$key = $val; } |
Echter, hoe kan ik een subroutine c.q. function aanroepen aan de hand van een variabele inhoud netzoals ik mijn Perl scriptjes doe ?
* Koffie hoopt dat iemand me nog een beetje kan volgen ...